基于Python的扫描程序,用于在Web应用程序中查找潜在的SSRF参数。
SSRF是网络上的关键漏洞之一,我发现没有工具可以自动发现潜在的易受攻击参数。See-SURF可以添加到您的武器库中以进行侦错/网络安全测试时进行侦察。
功能介绍
1、可以接收Burp的sitemap作为输入,并使用强大的正则表达式匹配语句来解析文件,并匹配任何包含了潜在SSRF漏洞关键词的GET/POST URL参数,比如说URL或站点信息等等。除此之外,它还可以检测任意URL或IP地址中的参数值。下面给出的是可分析的样本GET请求:
google.com/url=https://yahoo.com
google.com/q=https://yahoo.com
FORMS -
2、内置多线程网络爬虫,能够尽可能多地收集数据,并解析和识别潜在的SSRF参数。
3、提供了cookie以便支持认证扫描。
4、默认配置下,工具已常规模式运行,开启Verbose模式后,我们将能够查看到不同终端节点的各种漏洞参数。样例如下:
https://google.com/path/1/urlToConnect=https://yahoo.com
https://google.com/differentpath/urlToConnect=https://yahoo.com
5、漏洞利用:向Burp Collaboraor或其他HTTP服务器发送包含漏洞参数的外部请求,以确认SSRF漏洞的有效性。
工具安装
git clonehttps://github.com/In3tinct/See-SURF.gitcd See-SURF/
pip3 install BeautifulSoup4
pip3 install requests
工具使用
下面这条命令将以默认线程=10的配置运行See-SURF,未开启cookie/session,未开启Verbose模式:
python3 see-surf.py -H https://www.google.com
提供Cookie,以空格隔开,实现认证会话爬取:
python3 see-surf.py -H https://www.google.com -c cookie_name1=value1 cookie_name2=value2
开启Verbose模式,设置Cookie:
python3 see-surf.py -H https://www.google.com -c cookie_name1=value1 cookie_name2=value2 -t 20 -v
其他使用样例:
https://google.com/abc/1/urlToConnect=https://yahoo.com
https://google.com/123/urlToConnect=https://yahoo.com
Burp使用示例(2.x)
Burp Sitemap(-b和-p)
完整的命令样例:
python3 see-surf.py -H https://www.google.com -c cookie_name1=value1 cookie_name2=value2 -b burp_file.xml -p http://72.72.72.72:8000
-b参数可以提供Burp Sitemap文件,以便更好地发现潜在的SSRF参数。这个脚本首先回解析Burp文件,并尝试查找潜在的参数,然后针对目标运行内置的爬虫。
在BurpSuite中查看待分析目标,发送某些GET/POST请求,数量越多越好。然后点击“Target”标签,右键点击“Save selected Items”,然后保存。提供的脚本运行参数如下:
python3 see-surf.py -H https://www.google.com -c cookie_name1=value1 cookie_name2=value2 -b burp_file.xml
-p参数将会开启BurpSuite Collaborator,并向主机传递-p参数,或者开启一个Python Http服务器,并等待漏洞参数以执行请求。此时,Payload将会带参数执行,参考样例如下:
python3 see-surf.py -H https://www.google.com -c cookie_name1=value1 cookie_name2=value2 -p http://72.72.72.72:8000