目录
1、题目源码
<?php
highlight_file(__file__);
function curl($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
echo curl_exec($ch);
curl_close($ch);
}
if(isset($_GET['url'])){
$url = $_GET['url'];
if(preg_match('/file\:\/\/|dict\:\/\/|\.\.\/|127.0.0.1|localhost/is', $url,$match))
{
die('No, No, No!');
}
curl($url);
}
if(isset($_GET['info'])){
phpinfo();
}
?>
2、测试ssrf
明显这里是可以访问到其他的,这里代码禁用了file协议、dict协议、127.0.0.1和localhost,但没有过滤http协议和gopher协议我们使用http协议进行内网主机存活探测。
3、发现主机
此时我们查看info
/search?url=http://172.17.0.1 # 无存活
/search?url=http://172.17.0.2 # 发现另一存活机器
/search?url=http://172.17.0.3 # 当前机器
这三台第一台就一个apache服务第三台是本机,那多半我们只能从第二台入手:
4、发现服务
但是当前还不能找到攻下这台内网主机的突破口,我们可以使用ssrf扫描一下这个内网主机的端口,这里使用burpsuite
发现6379是打开的
5、redis 未授权访问攻击
由于这台内网主机上还存在一个http服务,所以我们可以将webshell写入其web目录,然后用ssrf进行访问。但是我们尝试发现不能直接在/var/www/html目录下写文件,我们使用burp扫一下都有哪些目录,发现有个upload目录。
确实存在这个目录
我们可以使用我们的一个工具进行渗透,这个工具叫Gopherusr在github上面是开源的