免责声明
本公众号所发布的所有内容,包括但不限于信息、工具、项目以及文章,均旨在提供学习与研究之用。所有工具安全性自测。如因此产生的一切不良后果与文章作者和本公众号无关。如有涉及公司与个人敏感信息,侵权烦请告知,我们会立即删除并致歉。
漏洞点
发现CmdUtil类中存在2个方法,runWindows和runLinux,这2个方法都是调用ProcessBuilder方法分别在windows、linux环境下进行命令执行。
因为本地是windows环境,所以查询调用CmdUtil.runWindows方法的代码。
其中convertWord2PdfStamp方法在调用CmdUtil.runWindows方法执行命令时,拼接了传入的stamp参数。
注意其在调用CmdUtil.runWindows方法执行命令前,判断了通过rid参数获取的文件的后缀必须为.doc或.docx。
this.word2Pdf为配置文件中定义的/idocv/converter/word2pdf.exe。
DocController中的downloadPdfByUuid方法,调用了convertWord2PdfStamp方法,stamp参数为请求传入参数。
漏洞请求路由为:/doc/{uuid}/pdf
漏洞参数为:stamp
最终拼接执行的命令类似于:
cmd /c /idocv/converter/word2pdf.exe -src xx -dest xx -stamp xx -x 0.0 -y 0.0
漏洞复现
关注后台回复“20241021”获取POC。
uuid可以通过/doc/upload?token=testtoken上传一个文件来获得,上传.doc文件。
请求/doc/{uuid}/pdf接口,stamp参数拼接命令进行命令执行。
原文始发于微信公众号(良月安全):[代码审计]记某文档系统命令执行审计
原文始发于微信公众号(良月安全):[代码审计]记某文档系统命令执行审计
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论