从SSRF到RCE:PDFReacter漏洞利用全解析

本文详细分析了PDFReacter HTML转PDF解析器的安全漏洞,通过XSS和iframe实现SSRF,利用file协议读取系统文件,最终通过SSH密钥获取root权限实现远程代码执行的全过程。

从SSRF到RCE:PDFReacter漏洞利用全解析

什么是PDFReacter?

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

漏洞发现过程

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

当导出包含载荷的表单为PDF时,发现最终生成的PDF文件竟然执行了HTML标签/XSS载荷。这表明应用程序和PDFReacter均未对HTML标签进行转义处理。

SSRF漏洞确认

在确认解析器不转义载荷后,我尝试使用iframe测试是否能在PDF中加载外部站点。实验证明,通过iframe成功加载了Google页面,这确认了SSRF(服务器端请求伪造)漏洞的存在。

本地文件读取

接下来使用file协议包装器尝试读取本地文件:

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

成功读取了/etc/passwd文件!

权限提升与RCE

为检查当前用户权限,尝试读取shadow文件:

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

成功获取shadow文件证实用户具有root权限。随后通过获取私有SSH密钥,成功SSH连接到服务器实现远程代码执行(RCE)。

致谢

虽然这不是我的第一个RCE漏洞,但成功获取shell时仍然令人激动。特别感谢Rahul Maini的博客文章对理解该场景提供的巨大帮助。

作者:Armaan Pathan
发布时间:2019年4月18日
阅读时长:2分钟

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