原文:
https://nandwanajatin25.medium.com/a-tale-of-html-to-pdf-converter-ssrf-and-various-bypasses-4a3e11030c77
这是我在一个私有程序中通过html到pdf转换器功能发现的ssrf的故事,它能够读取内部文件,aws元数据和一些内部调试端口,和很多客户信息。我将在3个部分中找到各种绕过和利用的方法。
SSRF到AWS密钥和敏感信息的泄露
我看到这个网站PDF转换器的功能之后,我迅速测试了一些SSRF payload。该应用程序正在从远程位置获取url,因此我设置了一个远程http服务器,并在有效负载下方存储了一个html文件,并将参数“ source”设置为我的服务器url。
<iframe src=”file:///etc/passwd” />
但是我无法在转换后的pdf中看到任何响应。然后我再戳一些参数,然后在像这样的“ dasdad”这样的参数源中发送无效的url,就可以看到引起我注意的错误。

此错误本身对于下一步的利用是一个很大的提示:p
实际上,我们可以看到Doctype(xxe)可能有两种利用方式,但是xxe在这里是不可能的,我想他们对此有适当的保护。但是html可以在参数中发送,因此我可以在source参数中快速发送此有效负载
source = <html> <iframe + src =” file:/// etc / passwd” + style =” width:100%; + height:100%” /> </ html>
而且我能够在转换后的pdf中看到passwd文件的内容。

现在你们中的大多数人都将在这里停止,但是我想更深入一些,所以我在passwd文件中寻找用户,并在其用户的.bash_history文件中读取了用户主目录中的所有文件,我看到了一些有用的命令这导致了我两件事:一个是有趣的端口,一个是环境文件。环境文件/var/www/<REDACTED>/.env包含组织的有效aws密钥,我可以在组织存储桶中放置文件,删除文件,读取客户数据。我也尝试过rce,但是它不起作用。


有趣的端口是9192,这是Chrome调试端口。我很快想起了我先前阅读的h1–415 2020挑战,它在ctf中有这个chrome调试端口,其中包含一个有趣的端点。我迅速浏览了一些文章,发现端点127.0.0.1:9222/json/list。默认情况下,端口为9222,但在我的情况下,端口已更改为9192,但最终我通过.env文件:p找到了它。现在我发送了这个有效载荷
source = <html> <iframe + src =”
http://127.0.0.1:9192/json/list” + style =” width:100%; + height:100%” /> </ html>
注意:使用style可以正确地渲染生成的pdf,以便它适合页面并在屏幕上显示所需的数据。
并看到了所有用户在实时pdf转换应用程序中抛出的各种URL。我可以在url中看到带有名称,编号,地址,电子邮件,会话令牌的各种付款收据,并且该收据正在不断更新。

我停在这里,因为现在已经产生了足够的影响,我做了报告并将其发送给安全团队。得到了一个不错的赏金$$$ 🙂所以这是第一部分。
SSRF绕过
现在过了一段时间,程序修复了该漏洞,并告诉我重新测试。他们应用的修复程序是阻止file:///协议和本地地址,例如http://127.0.0.1和http:// localhost。
绕过1
我使用此技术http://0.0.0.0:9192/json/list和http:// 0:9192 / json / list绕过了localhost URL ,只需在源参数中发送此有效负载
source = <html> <iframe + src =”
http://0.0.0.0:9192/json/list” + style =” width:100%; + height:100%” /> </ html>
绕过2
他们通过阻止所有0. *和127. *地址来再次修复它。我还与他们分享了wisskyrepo所提到的各种旁路技术,但是他们不知何故错过了备用IP编码。这次,他们在chrome调试端口中禁用了/ json / list端点。因此,我随机尝试了地址169.254.169.254(在第一阶段较早不起作用!),令我惊讶的是,其ip编码等效项现在可以工作了,我可以再次获取其aws密钥。我猜想他们在以前的ssrf修复期间使aws元数据可访问,或者某些配置混乱了。
所以现在我的payload看起来像这样
http://2852039166/ - http://169.254.169.254
http://7147006462/ - http://169.254.169.254
source=<html><iframe+src="http://2852039166/latest/meta-data/iam/security-credentials/aws-elasticbeanstalk-ec2-role"+style="width:100%;+height:100%;"></iframe></html>
译者按:
作者发现了一个html转pdf的功能,然后发现了一个SSRF漏洞,利用file协议读取本地文件,但是没有办法读取AWS的meta数据。作者有研究了一下,发现开启有chrome调试端口,又发现了很多敏感信息。最后又给了2个绕过。
本文迁移自知识星球“火线Zone”