

Apache Dubbo CVE-2019-17564 反序列化分析
source link: https://y4er.com/post/apache-dubbo-cve-2019-17564/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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
查看虚拟机是否开放2181端口
下载官方的Dubbo http样例 https://github.com/apache/dubbo-samples/tree/master/java/dubbo-samples-http 导入idea
修改Dubbo为有反序列化漏洞的版本,我改为2.7.3
因为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
改端口是因为8080端口和Burp的端口冲突了。修改完毕之后,启动HttpProvider。在控制台输出 dubbo service started
字样即表示启动成功。
漏洞复现
ysoserial生成payload
java -jar ysoserial.jar CommonsCollections4 calc > 1.ser
burp发包
漏洞分析
断点 dubbo-2.7.3.jar!/org/apache/dubbo/remoting/http/servlet/DispatcherServlet.class:43
跟进到 org.apache.dubbo.rpc.protocol.http.HttpProtocol.InternalHandler#handle
获取了URI、请求方式和RPC调用的上下文,然后进入handleRequest()
handleRequest()将request请求对象传入一个参数的 readRemoteInvocation()
,然后将request和 request.getInputStream()
传入其重载方法两个参数的 readRemoteInvocation()
,然后创建了ois对象,ois对象中包含了post请求的数据,然后进入 doReadRemoteInvocation()
到达readObject(),整个过程ois对象没有过滤,而ois中又包含了post报文,导致反序列化漏洞,如果存在可用的gadget,会导致RCE。
修复建议
升级Apache Dubbo到最新版本
参考链接
https://qiita.com/shimizukawasaki/items/39c9695d439768cfaeb5
https://www.mail-archive.com/[email protected]/msg06225.html
http://dubbo.apache.org/zh-cn/blog/dubbo-zk.html
https://video.twimg.com/tweet_video/EQlT6nBUEAADdR2.mp4文笔垃圾,措辞轻浮,内容浅显,操作生疏。不足之处欢迎大师傅们指点和纠正,感激不尽。
Recommend
-
15
0x01 漏洞描述dubbo于2020年6月22日更新了一个 hessian2 反序列化的漏洞,影响版本: 123Dubbo 2.7.0 to 2.7.6Dubbo 2.6.0 to 2.6.7Dubbo all 2.5.x versions (not supported by...
-
9
CVE-2019-11229详细分析 --git config可控-RCE ...
-
8
大家好,今天开始给大家分享 — Dubbo 专题之 Dubbo 序列化。在前一个章节中我们介绍了 Dubbo 路由规则之标签路由,其实现原理为:如果消费端传递标签则和配置的动态规则和静态规则进行匹配,如果消费端未传递标签则使用服务提供端的本地配置的静态标签和动态配...
-
8
17 min readWeblogic CVE-2015-4852 反序列化RCE分析2020-01-30common-collections导致的反序列化RCE,闲着也是闲着,分析下。centos7 weblogic10.3.6 win10 idea安装出现的问题下载需要Oracle账户,网上百度了一个
-
27
3 min readCVE-2020-7961 Liferay Portal 反序列化RCE分析2020-03-29Code White 公开了 Liferay Portal JSON反序列化RCE漏洞,攻击者可以发送payload到服务器造成远程代码执行。2020/3/24日,陈师傅
-
8
浅析Dubbo HttpInvokerServiceExporter反序列化漏洞(CVE-2019-17564) [ Mi1k7ea ] 浅析Dubbo HttpInvokerServiceExporter反序列化漏洞(CVE-2019-17564) 2021-07-11...
-
7
0x10 漏洞背景Nexus 的全称是 Nexus Repository Manager,是 Sonatype 公司推出的一个强大的仓库管理器,它极大地简化了内部仓库的维护和外部仓库的访问。 以往主要用之搭建 maven 私有仓库,但是随着社区更新不断迭代,它的功能不再局限于 mav...
-
11
Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)观摩师傅测试的时候,抓到一个存在rememberMe=deleteMe字段的包,我并没发现有什么问题,师傅说这个可能存在漏洞。发现是shiro框架漏洞。由于第一次接触shiro,于是就想复现一下,学习一下利用过程。
-
5
Apache Dubbo 可扩展机制分析在上一篇文章
-
8
RSS 从 2019 到 2020,Apache Dubbo 年度回顾与总结通过这篇文章我们将:总结过去一年 Dubbo 社区取得的成绩Monday, May 11, 2020非常...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK