QVD-2024-15263 禅道项目管理系统身份认证绕过漏洞
1y0ng 发表于 天津 漏洞分析 4083浏览 · 2024-04-29 12:37

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

2 条评论
某人
表情
可输入 255