QVD-2024-15263 禅道项目管理系统身份认证绕过漏洞代码分析

1.漏洞描述

禅道项目管理软件是国产的开源项目管理软件,专注研发项目管理,内置需求管理、任务管理、bug管理、缺陷管理、用例管理、计划发布等功能,完整覆盖了研发项目管理的核心流程。

禅道项目管理系统存在身份认证绕过漏洞,远程攻击者利用该漏洞可以绕过身份认证,调用任意API接口并修改管理员用户的密码,并以管理员用户登录该系统,配合其他漏洞进一步利用后,可以实现完全接管服务器

影响版本

16.x <= 禅道项目管理系统< 18.12(开源版)

6.x <= 禅道项目管理系统< 8.12(企业版)

3.x <= 禅道项目管理系统< 4.12(旗舰版)

2.代码分析

zentaopms/module/common/model.php中存在一个deny函数,函数对当前的session添加了一个user属性
请添加图片描述

而在zentaopms/module/testcase/control.php中的testcase类中刚好存在对用户进行鉴权,发现用户没有相关功能的使用权限之后执行deny操作

请添加图片描述

通过访问api.php?m=testcase&f=savexmindimport可以调用对应的savexmindimport函数

但是在这个过程中需要对testcase类进行实例化,实例化过程中将调用helper::isAjaxRequest()检查是否是ajax请求,所以需要在GET请求中添加参数HTTP_X_REQUESTED_WITH=XMLHttpRequest

请添加图片描述

请添加图片描述

此时就可以获取到带有user属性的session了

请添加图片描述

而用户创建相关模块是在/api.php/v1/users接口,可以在/zentaopms/framework/api/entry.class.php中看到当前的判断逻辑,如果session中没有user属性或user的值为guest则报404

请添加图片描述

然后可以通过/api.php/v1/users接口创建用户,在创建用户过程中没有进行进一步的鉴权操作,所以可以创造一个新的管理员用户(虽然回的是403,但实际上创建成功了)

请添加图片描述

请添加图片描述

3.修补措施

更新版本到18.12

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值