ZCTF-Web400-writeup
Category: CTF
Tag: ssrf, 302跳转
Written by Venenof7 with ♥ on
昨天刚刚结束ZCTF,最后战队的bird解除re300反超至第一。
一共做了两道web一道misc,膜拜战队里的pwn、re牛们。在这里写下web400那道ssrf的题解,战队的wp整理好也会发的。
题目给了一篇wooyun文章,通过查看得知是ssrf,随意在搜索框输入,返回百度的内容。
抓包,发现有一个link参数,根据两个搜索框的内容,确认此处存在ssrf漏洞,简单画了下:
于是我们要做的就是利用这个参数去访问其内网,但是经过测试发现,其过滤了IP,于是在自己的vps上放了一个302跳转:
<?php
header("Location: http://".$_GET["url"]);
?>
构造方式即:link=www.venenof.com/veneno.php?url=127.0.0.1:port
。
爆破了下端口:
其中902是阿里云的虚拟端口,得到第一层的端口80。右键看了下源码,发现一个css上有<!-- ba1du -->
的注释,打开后发现一个新的css文件,直接访问显示forbidden,于是ssrf访问:
看了下源码,得到内网域名:
然后再爆破下内网这个域名的端口:
发现403那个端口,然后这个时候并不知道这道题目一个至关重要的参数,没法去连接127,偶然点了下zcms导航栏下面的图片,直接给跳回去,但是发现地址栏多了一些东西,瞬间菊花一紧,看到src,以及online几个参数,在这里又发现两个小坑把:
第一就是在这里也过滤了ip,依然需要跳转。
第二就是&要url编码,天真的我没想那么多,构造好了就直接去post,结果点了n次,没反应我擦,最后发现,&不编码就和link并列了。。。尴尬,换成%26就好了。
于是我们直接访问403那个端口:
发现了Zrpc,尝试执行下命令,发现没反应,于是爆破了下online那个参数:
然后直接查看flag.txt就好了:
昨晚写wp的时候想了想,其实不算太难,自己主要有一些小细节没注意,导致花费了比较长的时间才做出来,还是要继续努力啊,23333
V师傅牛逼!
四师傅!
牛x,向v神学习
2333,膜拜前辈~