Apache Dubbo CVE-2019-17564 反序列化分析

栏目: IT技术 · 发布时间: 5年前

内容简介:Apache Dubbo HTTP协议中的一个反序列化漏洞(CVE-2019-17564)Apache Dubbo支持多种协议,官方推荐使用Dubbo协议。Apache Dubbo HTTP协议中的一个反序列化漏洞(CVE-2019-17564),该漏洞的主要原因在于当Apache Dubbo启用HTTP协议之后,Apache Dubbo对消息体处理不当导致不安全反序列化,当项目包中存在可用的gadgets时即可导致远程代码执行。2.7.0 <= Apache Dubbo <= 2.7.4.1

Apache Dubbo HTTP协议中的一个反序列化漏洞(CVE-2019-17564)

漏洞描述

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

影响范围

2.7.0 <= Apache Dubbo <= 2.7.4.1

2.6.0 <= Apache Dubbo <= 2.6.7

Apache Dubbo = 2.5.x

环境搭建

Dubbo 需要zookeeper,我采用虚拟机中的 docker 来搭建zookeeper环境。

docker run --rm --name zookeeper -p 2181:2181 zookeeper

Apache Dubbo CVE-2019-17564 反序列化分析

查看虚拟机是否开放2181端口

Apache Dubbo CVE-2019-17564 反序列化分析

下载官方的Dubbo http样例 https://github.com/apache/dubbo-samples/tree/master/java/dubbo-samples-http 导入idea

修改Dubbo为有反序列化漏洞的版本,我改为2.7.3

Apache Dubbo CVE-2019-17564 反序列化分析

因为Dubbo并没有可用的gadget,我们使用Commons-Collection4.4.0的gadget,所以在pom.xml中加入其依赖。

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.0</version>
</dependency>

此时我们还要修改spring/http-provider.xml来指定zookeeper的IP

Apache Dubbo CVE-2019-17564 反序列化分析

改端口是因为8080端口和Burp的端口冲突了。修改完毕之后,启动HttpProvider。在控制台输出 dubbo service started 字样即表示启动成功。

漏洞复现

ysoserial生成payload

java -jar ysoserial.jar CommonsCollections4 calc > 1.ser

burp发包

Apache Dubbo CVE-2019-17564 反序列化分析

漏洞分析

断点 dubbo-2.7.3.jar!/org/apache/dubbo/remoting/http/servlet/DispatcherServlet.class:43

Apache Dubbo CVE-2019-17564 反序列化分析

跟进到 org.apache.dubbo.rpc.protocol.http.HttpProtocol.InternalHandler#handle

Apache Dubbo CVE-2019-17564 反序列化分析

获取了URI、请求方式和RPC调用的上下文,然后进入handleRequest()

Apache Dubbo CVE-2019-17564 反序列化分析

handleRequest()将request请求对象传入一个参数的 readRemoteInvocation() ,然后将request和 request.getInputStream() 传入其重载方法两个参数的 readRemoteInvocation() ,然后创建了ois对象,ois对象中包含了post请求的数据,然后进入 doReadRemoteInvocation()

Apache Dubbo CVE-2019-17564 反序列化分析

到达readObject(),整个过程ois对象没有过滤,而ois中又包含了post报文,导致反序列化漏洞,如果存在可用的gadget,会导致RCE。

修复建议

升级Apache Dubbo到最新版本

参考链接

文笔垃圾,措辞轻浮,内容浅显,操作生疏。不足之处欢迎大师傅们指点和纠正,感激不尽。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

网站转换率优化之道

网站转换率优化之道

[美] Khalid Saleh、[美] Ayat Shukairy / 顾 毅 / 人民邮电出版社 / 2012-4 / 45.00元

内容简介: 怎样才能将访问者转化为顾客? 本书提供了一些切实可行的建议,比如如何说服访问者作出购买决定,如何避免用户因信息过量或导航繁琐而离开网站等。不论你是在设计或营销大型电子商务网站,还是在管理中小型在线业务,都可以从本书学会怎样使用市场营销原则、设计方法、可用性原则和分析数据来持续提升网站的转换率。 作者帮助过众多公司吸引在线顾客,有着丰富的实战经验,在书中细致讨论了从访问......一起来看看 《网站转换率优化之道》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

MD5 加密
MD5 加密

MD5 加密工具