从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的优秀博客。
感谢大家的阅读!