从SSRF到RCE:PDFReacter漏洞挖掘全解析

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

从SSRF到RCE:PDFReacter漏洞分析

什么是PDFReacter?

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

漏洞发现过程

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

当导出包含payload的表单为PDF时,最终生成的PDF文件显示:

图片描述

这表明应用程序和PDFReacter都没有对HTML标签进行转义处理,而是直接处理了HTML标签/XSS载荷。

SSRF漏洞确认

在确认应用程序使用PDFReacter作为解析器且不会转义payload后,我尝试使用iframe进行测试。我想检查是否能在最终PDF文档中加载外部网站,结果发现Google成功在框架中加载:

图片描述

至此确认可以通过iframe实现SSRF攻击。

本地文件读取

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

使用简单payload:"><iframe src="file:///etc/passwd"/></iframe>

图片描述

成功读取!

权限提升与RCE

为了检查当前用户是否具有root权限,我尝试使用以下payload获取shadow文件:

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

发现能够成功获取shadow文件,确认当前用户具有root权限。

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

图片描述

虽然这不是我第一次实现RCE,但在成功获取shell时仍然感到兴奋。Rahul Maini的博客帮助我深入理解了当前场景,特此感谢Maini的优秀博客。

感谢大家的阅读!

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