从SSRF到RCE:PDFReacter漏洞挖掘全记录

本文详细分析了PDFReacter HTML转PDF解析器的安全漏洞,通过XSS测试发现未过滤HTML标签,利用iframe实现SSRF攻击,最终通过文件读取和SSH密钥获取实现远程代码执行,完整展示了漏洞利用链条。

从SSRF到RCE in PDFReacter

什么是PDFReacter?

  • PDFReacter是一个将HTML内容解析转换为PDF的解析器。

在测试一个应用程序时,我发现该程序正在使用PDFReacter解析器。PDFReacter是一个格式化处理器,负责将HTML内容解析为PDF文件。

由于应用程序提供了向表单中插入数据的功能,我开始使用XSS进行模糊测试。我简单地使用了<img>标签作为测试载荷。应用程序还有一个将表单导出为PDF的选项,当我导出包含测试载荷的表单时,最终的PDF文件显示如下:

[按Enter键或点击查看完整尺寸图片]

这意味着应用程序和PDFReacter都没有对HTML标签进行转义处理,并且会处理HTML标签/XSS载荷。

既然我知道应用程序使用PDFReacter作为解析器,且两者都没有过滤我的载荷,接下来我尝试使用iframe。我想检查是否能在最终的PDF文档中加载外部网站,正如你所见,Google成功在框架中加载了:

[按Enter键或点击查看完整尺寸图片]

现在可以确认,我可以通过使用iframe访问外部网站(SSRF确认)。

接下来是使用file:///包装器读取本地文件。

我使用了简单的载荷:"><iframe src="file:///etc/passwd"/></iframe>

[按Enter键或点击查看完整尺寸图片]

成功!!!!

接下来是检查当前用户是否具有root权限。我尝试使用下面提到的载荷获取shadow文件,注意到我能够成功获取shadow文件:

"/><iframe src="file:///etc/shadow"></iframe>

由于当前用户具有root权限,下一步是获取shell。我获取了私有SSH密钥,并成功SSH连接到服务器:

[按Enter键或点击查看完整尺寸图片]

虽然这不是我第一次实现RCE,但当成功获取shell时,我仍然激动不已。Rahul Maini的博客帮助我理解了当前场景,感谢Maini的优秀博客。

感谢大家的阅读。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计