[代码审计]记某文档系统命令执行审计

admin 2024年10月21日13:41:07评论17 views字数 777阅读2分35秒阅读模式

免责声明

本公众号所发布的所有内容,包括但不限于信息、工具、项目以及文章,均旨在提供学习与研究之用。所有工具安全性自测。如因此产生的一切不良后果与文章作者和本公众号无关。如有涉及公司与个人敏感信息,侵权烦请告知,我们会立即删除并致歉。

漏洞点

发现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参数拼接命令进行命令执行。

[代码审计]记某文档系统命令执行审计

原文始发于微信公众号(良月安全):[代码审计]记某文档系统命令执行审计

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月21日13:41:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   [代码审计]记某文档系统命令执行审计https://cn-sec.com/archives/3294401.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息