fastjson安全漏洞浅析
No.1 声明 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。 雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。 No.2 前言 Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。 No.3 第一版 fastjson版本:1.2.22-1.2.24 这些版本的fastjson未对@type中加载进的类进行过滤,导致的这一版漏洞。(后面有具体调试,以基于rmi+远程加载类的POC为例) 针对的类是JdbcRowSetImpl类和特殊类TemplatesImpl。由于jdk版本的一些限制,需要使用多种姿势绕过,但是关于fastjson的基础原理都是一样的。 POC有以下几种: 基于rmi+远程加载类 基于ldap+远程加载类 基于rmi+BeanFactory类 基于ldap+jndi 基于特殊类 基于rmi+远程加载类