- 前言 -
最先出现问题的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;