从SSRF到RCE:PDFReacter漏洞分析
什么是PDFReacter?
PDFReacter是一个将HTML内容解析转换为PDF文件的格式化处理器。
漏洞发现过程
初始测试
在测试某个应用程序时,我发现该程序正在使用PDFReacter解析器。由于应用程序提供了向表单中插入数据的功能,我开始尝试XSS模糊测试,并简单使用了<img>标签作为载荷。
当导出包含载荷的表单为PDF时,最终的PDF文件显示应用程序和PDFReacter都没有对HTML标签进行转义处理,而是直接处理了HTML标签/XSS载荷。
SSRF确认
意识到应用程序使用PDFReacter作为解析器且两者都没有过滤我的载荷后,我尝试使用iframe进行测试。我想确认是否能在最终PDF文档中加载外部网站,结果显示Google成功在框架中加载。
这明确证实了通过使用iframe可以实现对外部站点的访问(SSRF确认)。
本地文件读取
下一步是使用file:///包装器读取本地文件。我使用了简单的载荷:
|
|
成功!
权限提升与RCE
接着检查当前用户是否具有root权限。我尝试使用以下载荷获取shadow文件:
|
|
注意到我能够成功获取shadow文件,确认当前用户具有root权限。
最后一步是获取shell。我获取了私有SSH密钥,并成功SSH连接到服务器。
总结
虽然这不是我的第一个RCE漏洞,但在成功获取shell时仍然感到兴奋。Rahul Maini的博客在帮助我理解当前场景方面提供了很大帮助。
技术要点:
- PDFReacter未对HTML标签进行适当转义
- 通过iframe实现SSRF攻击
- 利用文件读取漏洞获取系统敏感文件
- 通过SSH密钥实现远程代码执行
感谢阅读!