第十九届CISCN暨第三届长城杯半决赛WP
第二次参加长城杯了,这次我们队伍获得第 9 名,也还好 AWDP 分拿的比较多,还有一道二进制的 fix,但本人是 web 手就没端上来了;ISW 被拉爆了,渗透这一块确实还得练,至于后面的决赛尽力而为吧。感恩一切!
AWDP
MediaDrive
break
看到反序列化函数应当警觉


这里我们可以改变 basePath,通过 file_get_contents 函数来获取内容
1 |
|

由于过滤了 flag,但是这里有关键代码,当识别到不是 UTF 8 编码时会置空

我们只需要添加比如 GBK 字节码才有的 %df

fix
直接将预览中的 $rawPath = $user->basePath . $f; 改为硬编码路径就好
easy_time
break
爆破出 admin 密码 secret

通过配置可知 COPY html/ /var/www/html/ php 文件在该目录下
对于之前的上传压缩包功能,其函数并没有检测内部文件名的合法性

可以构造 zipslip,将文件解压到 /var/www/html 目录下
1 | import zipfile |
解压后在 about 路由下可以通过填入木马的 url,通过 SSRF 泄露出文件命令执行内容



最终在 tmp 目录下找到 flag

fix
其实在源码中存在一个安全解压函数,对压缩包里的文件名进行了检测,这个函数在源码中也只进行了定义,都没有使用

一开始想的是直接用这个函数,但是依旧漏洞利用成功,后来我们甚至在设置头像 URL 那里通过 SSRF 泄露信息做了过滤

甚至是把 remote_info 做了过滤但依旧 fix 失败,感觉应该是细节处没有考虑到吧,比较可惜
ISW
第三届长城杯-isw
第一个 flag
http://10.11.135.213:8080/
shiro 默认 key

写马进去

据说后面要用到 pkexec 的提权但我们没一个 pwn 手,也只能干瞪眼了…
另外两个 isw 分别都是二进制入手,我们 re 手也尝试了对其的逆向分析,但可惜还是没有更多建树










