fastjson

Fastjson已被大家分析过很多次,笔者是java小白,尝试跟着大佬的步伐做一些分析。
笔者继续带大家炒Fastjson的冷饭。关于漏洞分析和利用链分析文章网上已有大量,但是关于如何自动化检测的文章还是比较少见的,尤其是如何不使用Java对Fastjson做检测。
Spring MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。
Fastjson提供autotype功能,允许用户在反序列化数据中通过 @type 指定反序列化的类型,其次Fastjson自定义的反序列化会调用指定类中的setter方法和部分getter方法。
本文从复现与调试分析两个方向简述了此漏洞,逐步跟踪漏洞执行流程。
Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。
这里简单学习分析下Fastjson 1.2.62-1.2.68版本之间的一些Gadget和expertClass绕过利用。
fastjson作为github上star已经超过2w的开源项目,在各个企业内部都有着广泛的使用,所以这个项目也一直以来是黑客们漏洞挖掘的重要目标。
目前分析Fastjson漏洞的文章很多,每次分析文章出来后,都是过一眼就扔一边了。正好最近在学习反序列化的内容,对<1.2.48版本的漏洞再做一次分析,借鉴和学习了很多大佬的文章, 这次尽量自己来做。
近期Fastjson连续发布了两个版本。其中1.2.69版本修复了两个安全漏洞:前者能够绕过反序列化autotype开关限制,造成的危害严重;而后者则是常规的黑名单列表更新,在开启autotype且当前Classpath中存在Gadget类前提下会触发反序列化漏洞。