内容简介: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
查看虚拟机是否开放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/dev@dubbo.apache.org/msg06225.html
http://dubbo.apache.org/zh-cn/blog/dubbo-zk.html
https://video.twimg.com/tweet_video/EQlT6nBUEAADdR2.mp4文笔垃圾,措辞轻浮,内容浅显,操作生疏。不足之处欢迎大师傅们指点和纠正,感激不尽。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入浅出Node.js
朴灵 / 人民邮电出版社 / 2013-12-1 / CNY 69.00
本书从不同的视角介绍了 Node 内在的特点和结构。由首章Node 介绍为索引,涉及Node 的各个方面,主要内容包含模块机制的揭示、异步I/O 实现原理的展现、异步编程的探讨、内存控制的介绍、二进制数据Buffer 的细节、Node 中的网络编程基础、Node 中的Web 开发、进程间的消息传递、Node 测试以及通过Node 构建产品需要的注意事项。最后的附录介绍了Node 的安装、调试、编码......一起来看看 《深入浅出Node.js》 这本书的介绍吧!