题目给了附件。goland直接本地跑
看源码。
index.php。服务在80端口,并且file=/flag时就能读到flag。
再看go的vul路由时一个必须以http://127.0.0.1:1234/
开头的ssrf
但是 client.Get会遵循302跳转。并且Client.Get的net/http库。之前爆出过一个CRLF的洞
那么这题就是个SSRF。并且源码中存在302
首先测了下CRLF。发现漏洞存在
但是从这。一直测了几个小时。。死活绕不过Port的限制
最后无奈。换302思路做题
测了很久。
http://127.0.0.1:1234//a/../.
HTTP/1.1 302 Found
Content-Type: text/html; charset=utf-8
Location: //a/.././
Date: Sun, 09 May 2021 07:50:27 GMT
Content-Length: 32
<a href="//a/.././">Found</a>.
这里Location可以控制为//
而//就是省略HTTP协议的写法。至此。我们可以直接控制Host到VPS。然后VPS搭个302。变成SSRF->302->302->80 getflag