第三届长城杯半决赛WP
感谢队友带飞,拿下陕西赛区 NO.1
awdp
MediaDrive
防御
审计代码得知,此处进行反序列化,可以任意构造 cookie

cookie 中可以修改 basePath

在此处可能造成任意文件读取

修改$user->basePath 为静态 /var/www/html/uploads/ 即可check通过(当然并没有真正修复)

攻击
preg_match 过滤了 flag,但是在过滤之后又执行了 iconv 编码转换,且编码转换时用的是 UTF-8//IGNORE,会忽略掉 UTF-8 不支持的字符,可以想到在编码转换之前在 flag 中间加入 UTF-8 不支持的字符

同时由于反序列化 $user->encoding 可控,可以构造为 UTF-7,然后 flag 构造为 fl%C1ag

传入 cookie
user=O%3A4%3A%22User%22%3A3%3A%7Bs%3A4%3A%22name%22%3Bs%3A5%3A%22guest%22%3Bs%3A8%3A%22encoding%22%3Bs%3A5%3A%22UTF-7%22%3Bs%3A8%3A%22basePath%22%3Bs%3A1%3A%22%2F%22%3B%7D


isw
isw
flag1
使用 fscan 扫描,发现 shiro 默认 key,使用工具利用,生成内存马
kPH+bIxk5D2deZiIxcaaaA==

使用蚁剑连接,在根目录下发现 flag

flag2
使用 find 找 suid 文件,发现 pkexec,想到可能有 cve-2021-4034,上传并 gcc 编译

执行后提权为 root

在/root/flag 找到 flag
flag3
ifconfig 发现存在内网

fscan 扫描内网,发现 192.168.45.100,存在 22、445 等端口
在第一台机器 /root 目录下发现 agent elf 程序
进行逆向,发现是一个远程控制木马,默认开放了 12345 端口,同时发现 192.168.45.100 也开放了 12345,怀疑就是 agent 程序
有密钥 RCE_AUTH_2026

写 python 脚本尝试连接,经过测试,无回显,这里尝试生成 msf bind_tcp 木马,然后将木马通过蚁剑上传到第一台机器的 webapp 目录下,方便第二台通过 8080 端口连接下载,然后在第二台机器使用 curl 下载,修改权限并执行木马

成功使用 msf 连接到第二台机器的木马,发现直接为 root 权限,在根目录发现 flag
同时发现存在 docker 服务,解释了为什么也存在 windows 的服务
flag4
使用 find 搜索剩下的 flag,发现一个 flag


浙公网安备 33010602011771号