代码审计-Fastjson各版本漏洞分析(上)

本文详细分析了Fastjson从1.2.24到1.2.43版本的漏洞,包括autoType功能的安全限制和绕过方法。1.2.41版本可通过Lorg.example.User;绕过黑名单,1.2.42版本修复后使用LLorg.example.User;;进行绕过,1.2.43版本则对LL;;进行了过滤,但利用[org.example.User[{}可以成功。

- 前言 -

最先出现问题的Fastjson 1.2.24反序列化漏洞已经分析过了,产生漏洞的原理也差不多理解了

•在1.2.25之后的版本,以及所有的.sec01后缀版本中,autotype功能默认是受限的(黑白名单机制)

•在1.2.68之后的版本,fastjson增加了safeMode的支持。配置safeMode后,无论白名单和黑名单,都不支持autoType

- 概念 -

可能出现一些新的概念,给一些参考链接吧

•FastJSON为什么要有autoType功能

•enable_autotype

•fastjson_safemode

- 演示代码 -

后面的分析代码都以此为基础修改

package org.example;

importcom.alibaba.fastjson.JSON;

publicclass App {
    publicstaticvoidmain(String[] args){
        String json ="{\"@type\":\"org.example.User\",\"age\":66,\"username\":\"test\"}";
        System.out.println(JSON.parseObject(json));
    }

}

class User {
    privateString username;
    privateint age;

    publicvoidsetUsername(String username){
        this.username= username;
        System.out.println("call setUsername");
    }

    publicString getUsername(){
        System.out.println("call getUsername");
        return username;
    }

    publicvoidsetAge(int age){
        this.age= age;
       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值