01漏洞描述
—
Apache Dubbo支持多种协议,官方推荐使用Dubbo协议.Apache Dubbo HTTP协议中的一个反序列化漏洞(CVE-2019-17564),该漏洞的主要原因在于当Apache Dubbo启用HTTP协议之后,Apache Dubbo对消息体处理不当导致不安全反序列化,当项目包中存在可用的gadgets时即可导致远程代码执行.
02影响范围
—
2.7.0 <= Apache Dubbo <= 2.7.4.1
2.6.0 <= Apache Dubbo <= 2.6.7
Apache Dubbo = 2.5.x
03漏洞复现
—
环境介绍:
Windows 10
JDK8u221
一、环境搭建
先从GIthub上获取dubbo的项目
项目地址:https://github.com/apache/dubbo-samples
提取“dubbo-samples-http”目录到项目中
用IDEA打开后需要修改pom.xml中的dubbo.version
我这里将其修改为2.7.3漏洞版本
加载pom.xml中的依赖,其中有些依赖无法从远程仓库中获取的,经过分析后这些依赖无需加载,将其删掉就可以了。
导入完依赖后还需要一个本地触发gadgets,这里导入commons-collections4-4.0。
当然启动还需要依赖zookeeper,下载完zookeeper后将conf目录下的zoo_sample.cfg文件改成zoo.cfg并修改其中的两个参数
data和log目录需要自己在zookeeper目录下创建
运行binzkServer.cmd文件
随后启动dubbo项目中的启动HttpProvider
二、构造反序列化
利用ysoserial生成payload
java -jar ysoserial-master-30099844c6-1.jar CommonsCollections4 "calc" > payload.out
将payload粘贴至burp中
后面的分析就不多说了,关注公众号“小陈的Life”可以查看详情
https://mp.weixin.qq.com/s/KZxhX3Q_mE6PJ6MT7cYbeQ