Fastjson 1.2.24特性

Fastjson 1.2.24有两个特性:

  • 默认开启AutoType选项
  • 在处理以@type形式传入的类的时候,会默认调用该类的共有set\get\is函数

于是乎,攻击者可以配合一些存在问题的类,来实现RCE,这也是Fastjson 系列的第一个RCE安全通告问题:

https://github.com/alibaba/fastjson/wiki/security_update_20170315

随后,为例解决该漏洞问题,在1.2.25之后的版本,以及所有的.sec01后缀版本中,autotype功能是受限的,增加了checkAutoType采用白名单和黑名单的方式对加载的第三方类库进行检查,这也是后续一系列Fastjson黑名单绕过导致RCE的源头~

AutoType功能使用

在开发项目时,如果我们需要使用到AutoType是可以采用以下几种开启方式:

添加autotype白名单

添加白名单有三种方式,三选一,如下:

1、. 在代码中配置

ParserConfig.getGlobalInstance().addAccept("com.taobao.pac.client.sdk.dataobject.");

如果有多个包名前缀,分多次addAccept

2、加上JVM启动参数

-Dfastjson.parser.autoTypeAccept=com.taobao.pac.client.sdk.dataobject.,com.cainiao.

如果有多个包名前缀,用逗号隔开

3. 通过fastjson.properties文件配置

在1.2.25/1.2.26版本支持通过类路径的fastjson.properties文件来配置,配置方式如下:

fastjson.parser.autoTypeAccept=com.taobao.pac.client.sdk.dataobject.,com.cainiao. // 如果有多个包名前缀,用逗号隔开

打开autotype功能

如果通过配置白名单解决不了问题,可以选择继续打开autotype功能,fastjson在新版本中内置了多重防护,但是还是可能会存在一定风险。两种方法打开autotype,二选一,如下:

1、JVM启动参数

-Dfastjson.parser.autoTypeSupport=true

2、代码中设置

ParserConfig.getGlobalInstance().setAutoTypeSupport(true);

如果有使用非全局ParserConfig则用另外调用setAutoTypeSupport(true);

配置autoType黑名单

打开AutoType之后,是基于内置黑名单来实现安全的,但黑名单是穷举不完的,如果发现了新的风险类,可以通过以下配置来增加黑名单:

1、配置JVM启动参数

-Dfastjson.parser.deny=xx.xxx

这里的xx.xxx是包名前缀,如果有多个包名前缀,用逗号隔开

2、通过fastjson.properties来配置

在1.2.25之后的版本支持通过类路径的fastjson.properties文件来配置,配置方式如下:

-Dfastjson.parser.deny=xx.xxx

这里的xx.xxx是包名前缀,如果有多个包名前缀,用逗号隔开

3、代码中配置

ParserConfig.getGlobalInstance().addDeny("xx.xxx");

这里的xx.xxx是包名前缀,如果有多个包名前缀,用逗号隔开

AutoType安全讨论

AutoType在提供便捷的同时,也带来了安全隐患问题,在使用Fastjson是如果不必须则建议关闭该选项,同时使用的第三方库也要及时更新为好,关注官方的版本迭代,防止潜在的漏洞产生危害~

参考链接:https://github.com/alibaba/fastjson/wiki/enable_autotype

Fastjson AutoType相关推荐

  1. fastjson autoType is not support

    问题描述 在做SpringSecurity 的用户权限功能时,登录用户实体类中需要获取权限信息.实体类继承UserDetails,通过方法 getAuthorities获取用户权限信息. packag ...

  2. Fastjson 1.2.24远程代码执行漏洞(com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl)

    1.漏洞信息 1.1 漏洞简介 · 漏洞名称:Fastjson 1.2.24远程代码执行漏洞(com.sun.org.apache.xalan.internal.xsltc.trax.Template ...

  3. FastJson远程命令执行漏洞

    FastJson远程命令执行漏洞学习笔记 Fastjson简介 fastjson用于将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean.fastjson.ja ...

  4. Fastjson远程命令执行漏洞总结

    1.FastJson 简介 fastjson.jar包原始下载地址:https://github.com/alibaba/fastjson fastjson用于将Java Bean序列化为JSON字符 ...

  5. Fastjson 1.2.24 反序列化漏洞复现

    Fastjson 1.2.24 反序列化漏洞复现 1.漏洞介绍 FastjsonEngine是其中的一个JSON处理引擎.Fastjson是其中的一个基于Java的JSON解析器/生成器. Pippo ...

  6. FastJson1.2.24反序列化导致任意命令执行漏洞复现(CVE-2017-18349)

    #FastJson1.2.24反序列化导致任意命令执行漏洞(CVE-2017-18349)# 一.漏洞简介 Pippo是一款基于Java的Web框架.FastjsonEngine是其中的一个JSON处 ...

  7. 它又来了!Fastjson 被发现其用于安全控制的开关autotype限制可被绕过...你方了没?...

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料!   来源 | https://www.anquanke. ...

  8. java的autotype,关于 fastjson 异常 autoType is not support 问题分析解决

    数据仓库数据抽取服务在不久前增加了 OrientDB 的支持,当时使用了 Orient 官方提供的 JDBC 接口,后来发现 Orient JDBC 真是垃圾到无法言语了,不能满足我们自动化的 ETL ...

  9. 解决com.alibaba.fastjson.JSONException: autoType is not support

    转载自 https://blog.csdn.net/cdyjy_litao/article/details/72458538 最近发现进程运行日志中出现很多下面的日志: com.alibaba.fas ...

最新文章

  1. 远程桌工具-Remote Desktop Organizer
  2. 8086指令(II)
  3. 深入理解IIS的多线程工作机制
  4. sybase数据库导出mysql_使用BCP从Sybase远程数据库中导出数据
  5. 多线程的全局变量与局部变量
  6. 使用ffmpeg捕获USB外部摄像头视频流
  7. 聊聊spring cloud gateway的SetStatusGatewayFilter
  8. erp系统原理和实施第五版pdf_ERP系统实施费用!
  9. python 3.6 pyltp 安装
  10. 鸿蒙系统没有录屏,这15+项高效又实用的功能更新,一定别错过!
  11. 2020年980计算机综合,2022年华北水利水电大学980计算机学科专业综合考研复习资料...
  12. js 已知角度和斜边,求直角边
  13. CSS面试题整理汇总
  14. pringboot餐饮点餐系统毕业设计源码301749
  15. FW: 图说 WebAssembly
  16. 电脑裸妆linux,美妆相机pc版 版本 V5.0.0
  17. SQL干货丨关于分组和聚合函数,如何实现查询排名?!
  18. 戴尔服务器开启虚拟机,Windows 服务器2019中的受防护虚拟机增强功能
  19. 还是畅通工程 C语言
  20. Linux下树莓派spi编程

热门文章

  1. VC调用C#的COM组件(DLL)
  2. Linux lrzsz 详解
  3. linux parted分区格式化,parted分区以及格式化方法
  4. 艾蒂机器人_奥特曼格斗进化3艾斯机器人怎么玩厉害_奥特曼格斗进化3艾斯机器人使用心得分享_斗蟹游戏网...
  5. 女人,请对你的男人好点
  6. c语言作业冰雹猜想,C语言编程实现冰雹猜想的算法,并测算各个自然数到达4-2-1谷底(即N等于4,2,1结束后)所经过的变换次数。...
  7. 计算机中常用数制及编码教案,计算机《数制与编码-进制转换》公开课教案
  8. pycharm快捷键缩放文字大小
  9. 【了解Jira Issue types】
  10. 微信小程序 环形进度条_Web微信小程序圆环形进度条组件CSS实现