Tcsec安全研究院|fastjson漏洞分析

Fastjson漏洞的识别与DNSlog回显 Fastjson RCE漏洞实战POC探测方式 阅读详情

fastjson漏洞分析

fastjson介绍

fastjson 是一个 Java 库,可用于将 Java 对象转换为其 JSON 表示形式。它还可以用于将 JSON 字符串转换为等效的 Java 对象。Fastjson 可以处理任意的 Java 对象,包括没有源代码的预先存在的对象。
在这里插入图片描述

json -> bean

java 的核心就是对象的操作,fastjson 同样遵循这个原则利用get、set操作对象。将 User 对象转化为JSON字符串后,通过其提供的 parse() 方法就可将字符串还原成对象。
在这里插入图片描述

json框架探测

json框架识别

不同的json框架在解析json字符串的表现形式各不相同,利用其独特性质可以对json框架进行识别。举例现存在一个User对象,分析 json 反序列化时的性质。
在这里插入图片描述

jackson

  1. 严格要求与bean对象对齐,可少不能多,因此添加多余kv 报错
    在这里插入图片描述

  2. 无法解析单引号 报错
    在这里插入图片描述

  3. 无法识别注释符 报错
    在这里插入图片描述

gson

  1. 浮点无法转整数 报错,向 int 类型的值传浮点数无法解析会报错
    在这里插入图片描述

  2. 特有解析 报错,遇到 # 时都会当注释符处理
    在这里插入图片描述

  3. 特有解析 报错,拼接一个json字符串时会报错
    在这里插入图片描述

org.json

  1. 特有解析,插入 \n \r等字符改变输出,结合 # 注释符处理
    在这里插入图片描述

fastjson

  1. 浮点精度不丢失
    在这里插入图片描述

  2. 响应状态,如果是fastjson会对@type做出响应
    在这里插入图片描述

  3. DNSLOG 探测,这种方式可以无回显探测fastjson,是较为高效的一种方法,但不适用于不出网环境
    在这里插入图片描述

在 dnslog 域名被 ban 时,也可用一些正常域名探测是否存在DNS配置或出网
在这里插入图片描述

fastjson版本探测

当确定存在 fastjson 组件后,下一步就是对版本后的探测,以便更有针对性的利用。

有回显精确版本号

有报错回显的情况下,返回精确版本号
在这里插入图片描述

对于 FastJsonHttpMessageConverter 配置的解析,通常指定了key值或json结构,可通过添加[]等方式破坏既定结构
在这里插入图片描述

dnslog探测

1.2.47、1.2.68、1.2.80是漏洞的三个里程碑版本,通过java.lang.Class、java.lang.AutoCloseable、java.lang.Exception 来构造dns可以准确识别,并且该探测方式向下版本兼容

1.2.47
在这里插入图片描述

1.2.68
在这里插入图片描述

1.2.80
68和80都只会接收到第一个dnslog请求,83会收到第二个请求
在这里插入图片描述

fastjson利用链探测

确定版本后,就是针对利用链的一个探测。

Character 报错回显

探测到存在的类时将 Class 强转为 Char 导致报错回显
在这里插入图片描述

Class回显

当类存在时将返回一个类实例,通常体现在改变服务器的响应
在这里插入图片描述

dnslog外带

该方式利用难度很高,对操作系统、dns服务器均有要求
在这里插入图片描述

json利用

jackson

jackson通常是通过cve记录漏洞进行攻击,举例两个攻击方式,当然也可以自行构造调用链,与fastjson类似。

CVE-2017-7525 反序列化

在这里插入图片描述

CVE-2020-36179 SSRF & RCE

在这里插入图片描述

exec.sql
在这里插入图片描述

fastjson <=1.2.24

最初的漏洞版本,无任何校验,任意利用,举例payload

JdbcRowSetImpl

在这里插入图片描述

TemplatesImpl

在这里插入图片描述

bcel

在这里插入图片描述

fastjson 1.2.25-1.2.45 黑名单

之后的 fastjson 引入checkAutoType 机制检查,当手动开启 autotype 时,可以绕过黑名单检查,这几种方式目前实战中已经很少见了。但黑名单但引入,对研究其他组件的利用方式很有帮助。
https://github.com/LeadroyaL/fastjson-blacklist

1.2.41 加L

在这里插入图片描述

1.2.42 双写L

在这里插入图片描述

1.2.43 加[{

在这里插入图片描述

fastjson <=1.2.47 缓存通杀

在 fastjson 迭代到 1.2.47 时,爆出的漏洞在不开启 AutoTypeSupport 的情况下就可以构造任意反序列化
对于1.2.25-1.2.32:需关闭AutoTypeSupport
在这里插入图片描述

fastjson <=1.2.68

在 fastjson 迭代到 1.2.68 时,新增了对 expectClass 的判断,可以通过这个绕过 autoType 检查
在这里插入图片描述

fastjson <=1.2.80

fastjson 引入 expectClass 属性后造成了 1.2.68 的漏洞。而 checkAutoType 中还有一个对 expectClass 的判断,造成了 1.2.80 的漏洞。
在这里插入图片描述

fastjson WAF bypass

编码绕过

fastjson 对 key,value 值会自动进行 hex 解码和 unicode解码
在这里插入图片描述

在这里插入图片描述

字符填充

传统绕WAF思路,大量字符
在这里插入图片描述

fastjson dos

对于 Fastjson 1.2.36-1.2.62 的版本存在dos漏洞,在 1.2.80 后 fastjson 推出 noAutoType 版本,但并未对dos漏洞进行修复
在这里插入图片描述

fastjson 1.2.25-1.2.32 绕过autoType限制

fastjson 1.2.47 的漏洞存在一种情况,对于1.2.25-1.2.32版本区间需关闭AutoTypeSupport,这个问题在前几个月以赛题形式出现在了CTF中,也有了解决方案
在这里插入图片描述

fastjson -> codeql

比如寻找 shiro 的调用链,source 点就是类的 Field,sink点是lookup方法
在这里插入图片描述

找到3条调用链
在这里插入图片描述

总结

fastjson通过黑名单的方式限制攻击,终究是会有遗漏的,所以在官网的介绍中也建议使用fastjson2。
在这里插入图片描述

参考

https://blog.sometimenaive.com/2020/05/21/find-fastjson-jndi-gadget-by-codeql-tainttracking/
https://github.com/Whoopsunix/fastjson_study
https://github.com/knownsec/KCon/tree/master/2022

fastjson1.2.83反序列化漏洞 【代码】fastjson1.2.83反序列化漏洞。 阅读详情

相关推荐

代码审计-fastjson的dnslog探测方式分析

前言 正常测试的时候,发现java后端对json处理都会去测试一下是否存在反序列化,但是后端处理json的组件很多,比如fastjson、jackson、gson等,怎么判断是否使用了fastjson呢? 有一个简便无危害的方式,就是通过dnslog来判断。 大佬们讨论的issue 说明 前面我们在分析的时候,会发现很多有一个变量token在进行判断,比如token == 12 或者 token == 14等,那这个token到底代表啥呢?在com.alibaba.fastjson.parser.

cdyunaq的博客 2380

网络信息安全等级与标准

为了实现对网络安全的定性评价,美国国防部在1985年制定了可信任计算机标准评估准则(TCSEC),它已经成为了现行的网络安全标准。在TCSEC中,美国国防部按处理信息的等级和应采用的响应措施,将计算机安全从高到低分为A、B、C、D四类七个级别,共27条评估准则。其中: D级为无保护级、C级为自主保护级(C1级为机动安全保护,C2级为控制访问保护)、B级为强制保护级(B1级为标签安全,B2级为结构保护,B3级为安全域)、A级为验证保护级。随着安全等级的提高,系统的可信度随之增加,风险逐渐减少。

2201_75362610的博客 2254

安全评估标准:TCSEC、ITSEC、FC、CC

TCSEC是最早的安全评估标准之一,主要针对操作系统,但现在已经较少使用。ITSEC和FC在欧洲和美国分别得到了广泛应用,并且为后来的CC标准奠定了基础。CC是目前最广泛使用的国际标准,适用于各种类型的信息技术产品和服务,强调了全球互认和灵活性。

qq_69100706的博客 3016

通过dnslog探测fastjson的几种方法

0x01 背景 在渗透测试中遇到json数据一般都会测试下有没有反序列化。然而json库有fastjson,jackson,gson等等。怎么判断后端不是fastjson呢?这就需要构造特定的payload了。 昨天翻看fastjson源码时发现了一些可以构造dns解析且没在黑名单当中的类,于是顺手给官方提了下Issue。有趣的是后续的师傅们讨论还挺热闹的,我也在这次讨论中学习了很多。这篇...

Adminxe的博客 9819

Fastjson反序列化漏洞复现

Fastjson反序列化漏洞复现

weixin_52501704的博客 2494

35-3 使用dnslog探测fastjson漏洞

DNSLog是一种记录在DNS上的域名相关信息的机制,类似于日志文件,记录了对域名或IP的访问信息。因特网采用树状结构的命名方法,按照组织结构划分域,每个域都是名字空间中被管理的一个划分,可以进一步划分为子域。当向DNS服务器发起kxsy.work的解析请求时,DNSLog会记录下此次解析,包括解析的域名和对应的IP地址。刷新dnslog服务器的记录,有记录就说明存在漏洞(一开始的4ax的子域名发送请求,刷新看不到,我就获取一个新的子域名做演示,所以下面的截图中的域名跟上一张不一样)将数据包发送到重发器。

weixin_43263566的博客 2929

TCSEC介绍

TCSEC简单学习

LongL_GuYu的博客 3209

手把手教你用高频注入法辨识永磁同步电机电感参数(附MATLAB仿真)

本文详细介绍了高频注入法在永磁同步电机电感参数辨识中的工程实践与MATLAB仿真指南。通过高频信号注入法,无需拆解电机即可在线精确测量Ld和Lq参数,适用于电动汽车驱动和工业伺服等高精度控制场景。文章包含信号设计、硬件实现、解调算法及完整MATLAB仿真模型构建,帮助工程师快速掌握这一关键技术。

orange的博客 292

美国国防部可信计算机系统评估系TCSEC

TCSEC标准是计算机系统安全评估的第一个正式标准,具有划时代的意义。该准则于1970年由美国国防科学委员会提出,并于1985年12月由美国国防部公布。TCSEC最初只是军用标准,后来延至民用领域。TCSEC将计算机系统的安全划分为4个等级、7个级别。 D级别是最低的安全级别,对系统提供最小的安全系统的访问控制没有限制,无需登陆系统就可以访问数据,这个级别的系统包括DOS, WINDOWS98等 C级别有两个子系统,C1级和C2. C1级称为选择性保护级( Discrtionary Security Pro

kiku 6511

TOGAF9.2/10 认证基础知识点概览表

(考点解析:业务场景是一种重要的技术,可以在企业架构的各个阶段使用,主要是架构愿景和业务架构,但如果需要,也可以在其他架构域中使用,以直接从业务的高级需求中派生架构的特征。“哪里”可以看作是对相关企业的界定、“为什么”可以被视为组织环境中的关键驱动因素和要素、“谁”是指确定发起人利益相关者和受业务指令影响的其他主要利益相关者,以创建企业架构,并确定他们来自企业的需求和优先级、他们与企业的关系以及彼此之间所需的工作行为。它是业务驱动和业务主导的,它结 合了所有业务线的必要努力,以实现所需的能力。

2302_81497763的博客 2076

单细胞转录组数据分析全流程:从原始数据到细胞注释

本文详细介绍了单细胞转录组数据分析的全流程,从原始数据读取、环境搭建、数据质控与标准化,到降维聚类、细胞类型注释,以及高级质控与多样本整合。重点阐述了如何利用Seurat等工具进行数据处理,并通过标志基因比对与自动注释方法完成细胞身份鉴定,为研究者提供了一套清晰、可操作的分析指南。

coffee的博客 553

第8章 通信网络安全

电信网络是一个国家的信息基础设施的关键组成部分,承担着大范围的公众通信业务,随着 信息社会人们对信息的依赖程度越来越高,电信网络与国民经济各个领域的发展日益紧密。电信网络的安全对整个国家的信息安全起着举足轻重的作用。1、电信网络的网络安全概念广义电信网络的网络安全概念是:保证电信网络,在规定环境下,完成规定功能和性能;在 环境劣化时,保持最低需求的功能和性能;在环境恢复时,能够迅速恢复规定功能和性能的网络 设施、相关程序及人员行为的集合。

weixin_58085973的博客 998

达梦数据库连接报错6001网络通信异常

本文主要记录客户端连接达梦数据库报错6001网络通信异常问题分析过程、问题原因以及问题解决方法。

chen_zizi2025的博客 2772

Fastjson在实战中的检测与利用

参考:https://github.com/alibaba/fastjson/issues/3077java.net.InetAddress这个gadget在1.2.49禁止了。如果上面这个poc可以出dnslog说明很大概率可以rce。如果以上这些poc可以出dnslog,则可以说明后端百分百是fastjson。最近发现有个容易被人弄错的地方,就是fastjson的payload。网上的Payload,发现有的目标可以成功,有的目标不能成功,这是为什么?

why811的博客 6932

常见卫星图源下载教程

上面列出的8个常见的亚米级别数据源都可以通过xyz协议或者wmts/wms协议进行下载。这些协议是什么?地理信息数据为了方便网络传输,制定了一系列的地理数据传输标准(wms/wmts/xyz等)。协议特点优点缺点栅格数据支持矢量数据支持WMS通过HTTP请求获取GIS数据,服务器会将数据渲染成图像高度定制的地图;交互性强服务器渲染图像,响应时间较长支持有限支持WMTS提供预渲染的地图瓦片速度快,因为地图瓦片可以预先生成并在请求时快速提供瓦片的内容是预先确定的,无法进行定制支持。

锐多宝的地理空间 1万+

配置 SAP Web Dispatcher 的实战指南:打通 SAP Fiori、SAP Gateway 与前端系统的关键一跳

SAP Web Dispatcher 在 Fiori 架构中扮演关键角色,作为统一入口处理 HTTPS 请求、实现安全代理和流量分发。它将分散在不同系统的访问路径统一收口,解决浏览器同源策略限制,集中管理 HTTPS 终止和客户端信息传递。典型配置中,Web Dispatcher 监听 443 端口,根据路径将 OData 请求转发至 Gateway 系统,静态资源请求送至前端服务器。SSL 相关配置(如 PSE 文件)确保安全通信,而路由规则(wdisp/system_xx)决定请求转发目标。实施时需注意

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 103

FastJson中AutoType反序列化漏洞

FastJson中AutoType反序列漏洞梳理。

isxiaole的博客 1万+

【Halcon 】Halcon 实战:如何为 XLD 模板添加极性信息以提升匹配精度?

本文介绍了Halcon中为XLD轮廓模板添加极性信息的实用技巧。通过先以"ignore_local_polarity"模式创建模板,首次匹配获得位置后,使用set_shape_model_metric运算符结合真实图像为模板注入极性信息(边缘明暗方向)。这种方法弥补了XLD模板初始不支持极性的缺陷,可显著提升后续匹配的精度和抗干扰能力。实验显示,添加极性信息后的模板匹配效果明显优于无极性的匹配结果。该技术特别适用于基于手动绘制或处理后的XLD轮廓创建模板的场景。

songhuangong123的博客 751

第8章 安全模型、设计和能力的原则

安全模型、设计和能力的原则

HeLLo_a119的博客 2095

基于FPGA的数字图像处理-直方图操作【3.3】

对于固定的位宽和图像分辨率来说,这个计算过程是 可定量的,也就是这个归一化系数是已知的。1.直方图累计和 根据数学定义,直方图累加和的定义是小于指定像素的所有像素 的统计值之和。在实际应用中,处理帧缓存是费时费力费资源的一件事情,在许 多情况下,图像的变换比较慢,在这种情况下的一个近似是当建立当 前帧的直方图统计结果时使用从前一帧得到的映射。由测试结果可见,这两幅过曝光和曝光不足的图像,经过均衡化 之后的效果图差别不大,对比度都非常高,设计代码达到了预期的均 衡目的。累加和的计算情况如图6-28所示。

qq_43416206的博客 1127

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

网络信息安全等级与标准_比较tcsec,cc及我国信息安全等级保护标准

为了实现对网络安全的定性评价,美国国防部在1985年制定了可信任计算机标准评估准则(TCSEC),它已经成为了现行的网络安全标准。在TCSEC中,美国国防部按处理信息的等级和应采用的响应措施,将计算机安全从高到低分为A、B、C、D四类七个级别,共27条评估准则。其中: D级为无保护级、C级为自主保护级(C1级为机动安全保护,C2级为控制访问保护)、B级为强制保护级(B1级为标签安全,B2级为结构保护,B3级为安全域)、A级为验证保护级。随着安全等级的提高,系统的可信度随之增加,风险逐渐减少。

2401_84215240的博客 1892

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Fastjson反序列化漏洞

下载地址:https://github.com/RandomRobbieBF/marshalsec-jar。下载地址:https://github.com/welk1n/JNDI-Injection-Exploit。下载地址:https://github.com/pmiaowu/BurpFastJsonScan。下载地址:https://github.com/a1phaboy/FastjsonScan。将TouchFile.java文件内容修改为以下代码。地址:http://www.dnslog.cn/

g1345444的博客 1299

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

网络安全协议

本章将会进行网络安全协议的讲解网络安全(Cyber Security)是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。为了对现有计算机系统的安全性进行统一评价,为计算机系统制造商提供一个权威的系统安全性标准。需要有一个计算机系统安全测评标准。美国国防部于1983年推出了历史上第一个计算机评价准则—(可信计算机系统评价准则)(TCSEC),带动了国际上计算机安全测评的研究。

yj11290301的博客 1万+
上一篇: Tcsec安全研究院|postgreSQL与Mysql利用的一些差异
下一篇: MySQL注入绕过
tcsecXD
博客等级 码龄7年 42粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值