某开源项目管理软件 命令执行漏洞分析

admin 2023年7月13日15:44:27评论21 views字数 1288阅读4分17秒阅读模式

影响版本

禅道 版本
开源版 17.4 ~ 18.0.beta1
旗舰版 3.4 ~ 4.0.beta
企业版 7.4 ~ 8.0beta1 8.0beta2

利用条件

代码库的创建及编辑权限

环境搭建

下载源码版本,本地复现时使用的是PHP 7.3.4环境

https://www.zentao.net/dl/zentao/18.0.beta1/ZenTaoPMS.18.0.beta1.php7.2_7.4.zip

某开源项目管理软件 命令执行漏洞分析

IDEA PHP debug环境配置可以参考下方的文章
https://smallfox233.github.io/%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/IDEA/PHP%20Debug/

某开源项目管理软件 命令执行漏洞分析

漏洞分析

路由规则

/index.php?m=文件夹名&f=方法名

若需要访问/module/admin/control.php的index方法,可使用如下路由(该路由需要登录后)

/index.php?m=admin&f=index

通过debug就可以知道是否访问了该方法

某开源项目管理软件 命令执行漏洞分析
某开源项目管理软件 命令执行漏洞分析

漏洞点

漏洞位置为modulerepomodel.phpcheckConnection函数

类型为POST

传入参数scm=Subversion可进入if语句中执行exec函数

变量client被拼接到了versionCommand变量,后经exec函数调用执行

某开源项目管理软件 命令执行漏洞分析

寻找利用链

在model.php中的函数不能直接通过发送请求进行调用,在control.php中的函数才可以

有三处地方调用了函数checkConnection,都是在model.php中

某开源项目管理软件 命令执行漏洞分析
某开源项目管理软件 命令执行漏洞分析

第二处和第三处中都在model.php的update函数中

所以后续的利用链只需经过update函数,都会进入漏洞点

某开源项目管理软件 命令执行漏洞分析
某开源项目管理软件 命令执行漏洞分析

之后需要在control.php中寻找能够调用mode.php 的update()函数的地方

直接检索时,没法获取对应的调用点

某开源项目管理软件 命令执行漏洞分析

触发点

之后经过查询和debug调试发现modulerepocontrol.php的edit可触发model.php的update函数

而edit函数需要先通过create创建一个仓库才能进行编辑

某开源项目管理软件 命令执行漏洞分析

利用链

某开源项目管理软件 命令执行漏洞分析

漏洞复现

创建代码仓库

先登录后台

某开源项目管理软件 命令执行漏洞分析

点击左侧的DevOps创建一个代码仓库

某开源项目管理软件 命令执行漏洞分析

抓包发送,出现了一个报错

某开源项目管理软件 命令执行漏洞分析

根据报错提示修改

某开源项目管理软件 命令执行漏洞分析

将报文中的serviceProject修改为非0值即可成功创建代码仓库,创建成功后会返回repoID和objectID信息

某开源项目管理软件 命令执行漏洞分析

编辑仓库触发漏洞

将请求包复制一个到重放模块中修改

f=create替换为f=edit

在url中增加如下的内容,将这两个参数值提换成创建成功后返回的值

&repoID=编号&objectID=编号

再替换post请求body信息

SCM=Subversion&client=calc

因为在modulerepomodel.php中调用了两次的checkConnection()函数

所以发包后将会执行两次calc命令,将会弹出两个计算器

某开源项目管理软件 命令执行漏洞分析
某开源项目管理软件 命令执行漏洞分析

原文地址:https://forum.butian.net/share/2358

 若有侵权请联系删除


技术交流加下方vx


某开源项目管理软件 命令执行漏洞分析


原文始发于微信公众号(红蓝公鸡队):某开源项目管理软件 命令执行漏洞分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年7月13日15:44:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   某开源项目管理软件 命令执行漏洞分析http://cn-sec.com/archives/1873181.html

发表评论

匿名网友 填写信息