从SSRF到RCE:PDFReacter漏洞深度剖析

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

从SSRF到RCE:PDFReacter漏洞分析

什么是PDFReacter?

PDFReacter是一个将HTML内容解析转换为PDF文件的格式化处理器。

漏洞发现过程

初始测试

在测试某个应用程序时,我发现该程序正在使用PDFReacter解析器。由于应用程序提供了向表单中插入数据的功能,我开始尝试XSS模糊测试,并简单使用了<img>标签作为载荷。

当导出包含载荷的表单为PDF时,最终的PDF文件显示应用程序和PDFReacter都没有对HTML标签进行转义处理,而是直接处理了HTML标签/XSS载荷。

SSRF确认

意识到应用程序使用PDFReacter作为解析器且两者都没有过滤我的载荷后,我尝试使用iframe进行测试。我想确认是否能在最终PDF文档中加载外部网站,结果显示Google成功在框架中加载。

这明确证实了通过使用iframe可以实现对外部站点的访问(SSRF确认)。

本地文件读取

下一步是使用file:///包装器读取本地文件。我使用了简单的载荷:

1
"><iframe src="file:///etc/passwd"/></iframe>

成功!

权限提升与RCE

接着检查当前用户是否具有root权限。我尝试使用以下载荷获取shadow文件:

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

注意到我能够成功获取shadow文件,确认当前用户具有root权限。

最后一步是获取shell。我获取了私有SSH密钥,并成功SSH连接到服务器。

总结

虽然这不是我的第一个RCE漏洞,但在成功获取shell时仍然感到兴奋。Rahul Maini的博客在帮助我理解当前场景方面提供了很大帮助。

技术要点:

  • PDFReacter未对HTML标签进行适当转义
  • 通过iframe实现SSRF攻击
  • 利用文件读取漏洞获取系统敏感文件
  • 通过SSH密钥实现远程代码执行

感谢阅读!

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