SSRFire是一款针对SSRF漏洞的自动化漏洞挖掘工具,在该工具的帮助下,广大研究人员只需要给该工具提供一个目标域名和服务器信息,SSRFire将帮助我们自动挖掘出潜在的SSRF漏洞。除此之外,该工具还可以挖掘XSS以及开放重定向等安全漏洞,功能算是十分强大了。
什么是SSRF漏洞?
SSRF(Server-Side Request Forgery)服务端请求为伪造,SSRF是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统) SSRF漏洞形成的原因大多是因为服务端提供了从其他服务器应用获取数据的功能且没有对目标地址作过滤和限制。
由于该工具基于GAU、FFUF、qsreplace和OpenRedirex等工具开发,因此我们需要在本地设备上安装并配置好Go和Python 3.7+环境。我们不需要自己去手动安装这些工具组件,因为SSRFire提供的安装脚本setup.sh可以自动帮我们安装完成。我们只需要安装好Go和Python 3.7+环境即可。需要注意的是,就算你已经安装好了上述工具组件,我们也建议大家重新安装一次,这样就不会有什么像路径冲突这样的意外情况出现了。
如果你不想重新安装的话,请将下列代码粘贴到项目的.profile文件中,对工具组件进行描述。接下来,修改ssrfire.sh的第十行,替换你的.profile文件路径:
#Replace /path/to/ with the specific directory where the tool is installed
#If you already have configured paths for any of the tools, replace that code with the below one.
ffuf(){
echo "Usage: ffuf https://www.domain.com/FUZZ payloads.txt"
/path/to/ffuf/./main -u $1 -w $2 -b $3 -c -t 100
}
gau(){
echo "Usage: gau domain.com"
/path/to/gau/./main $1
}
gau_s(){
/path/to/gau/./main --subs $1
}
openredirex(){
echo "Usage: openredirex urls.txt payloads.txt"
python3 /path/to/OpenRedireX/openredirex.py -l $1 -p $2 --keyword FUZZ
}
qsreplace(){
/path/to/qsreplace/./main $1
}
广大研究人员可以使用下列命令将该项目源码克隆至本地:
git clone https://github.com/ksharinarayanan/SSRFire.git
chmod +x setup.sh
./setup.sh (preferably yes for all ---> **highly recommended**)
./ssrfire.sh -d domain.com -s yourserver.com
./ssrfire.sh -d domain.com -s yourserver.com -f custom_file.txt -c cookies
domain.com:需要测试的目标域名 yourserver.com:检测SSRF的服务器,比如说Burp collaborator custom_file.txt:可选参数,提供自定义URL cookies:可选参数,以认证用户发送请求
现在,我们就可以通过GAU来获取目标域名的所有URL地址了。这个过程可能需要很长时间,我们可以在项目的output/domain.com/raw_urls.txt文件中查看到爬取到的地址列表。
等待工具运行大概10-15分钟的时间,直到我们获取到足够多的需要测试的URL为止。接下来,将output/domain.com中的raw_urls.txt文件拷贝到domain.com文件夹之外,然后运行下列命令:
./ssrfire.sh -d domain.com -s yourserver.com -f /path/to/copied_raw_urls.txt
工具会询问你是否删除现有目录,选择“yes”即可,此时将会跳过GAU获取URL地址的过程。
现在,所有的URL以及参数都将进行过滤处理,yourserver.com也将会被填充到参数值中(final_urls.txt)。
下一步就是向所有的URL地址发送请求了。
警告:此操作将产生大量的数据流量,请不要将其用于未授权测试的站点。
此功能将测试所有获取到的URL,工具将会根据响应数据中的信息,来将可疑的URL地址添加到output/domain.com/xss-suspects.txt文件中,但可能存在一定的假阳性。
如需进一步测试,可以将该列表输入到类似XSStrike之类的的XSS扫描工具中来确定漏洞的有效性。
此操作需要提供Payload文件的路径,或直接使用默认Payload。开发人员建议使用OpenRedirex,因为该工具经过专门设计,可以通过从列表中加载URL来检查开放重定向。
https://github.com/ksharinarayanan/SSRFire
参考资料
https://en.wiki*pedia.org/wiki/Server-side_request_forgery
https://interact.projectdiscovery.io/
https://github.com/lc/gau
https://github.com/ffuf/ffuf
https://github.com/tomnomnom/qsreplace
https://github.com/devanshbatham/OpenRedireX