TCTF-2022

这次时间都花在一道题上 当时做到凌晨四点 卡在最后一步 撑不住辣

WEB

Where are you from?

1
2
3
4
5
6
7
8
9
10
11
nc 202.120.7.207 2333 Entry your team token to create a challenge container.
Customer service staff : @llllIII||IIIllIl||IIIll||IIllll#1086

http://43.155.107.208:31015/ctf/
u: r3kapig
p: hof6YMxTY8AhORO5W42xp5aUOPBFuUhv

Welcome, r3kapig! Where are you from?
Server: http://43.155.107.208:31014/ctf/
Username: r3kapig
Password: U4vSQGuXOfUFPVFkadSYAlvQHFA0nwc2

我的想法

image-20220918194053259

走私

这道题涉及两个知识点,第一个知识点是AJP走私,其次是一个ghostcat漏洞。

前端是apache httpd,后端是tomcat。

请求 POST /ctf/ 只返回一个 ip地址

所以可能是请求走私或者ssrf漏洞

所以当我将 GET 发送到前端服务器时,它会将 HTTP 请求转换为 AJP 数据,但如果我们发POST请求的话,

http请求回被分为两个AJP数据包来发送。这时我们就联想到了请求走私。

这篇文章给了我很大启发 http://noahblog.360.cn/apache-httpd-ajp-request-smuggling/

我们想办法用第二个构造一个完整的请求来读文件,

通过请求走私 填充字节来截断 然后构造一个读取的包

在 AJP 数据包中使用请求属性来覆盖原请求的漏洞

最后没读到 看了别人wp说是可能在几十个请求后才能收到 所以还要写个脚本不停地收请求

第二部分参考下面文章:

不调试源码重现 Ghostcat 漏洞 (CVE-2020-1938) (seebug.org)

当时尝试的画面。。。

image-20230317024101829