栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

fastjson反序列化漏洞

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

fastjson反序列化漏洞

漏洞说明

Fastjson多处补丁修补出现纰漏,Fastjson在1.2.68版本及以下,无需Autotype开启,或者可绕过autoType限制,攻击者即可通过json携带POC在使用Fastjson的服务器上进行远程代码执行。

携带POC的json串:

{"x":{"@type":"java.net.InetSocketAddress"{"address":,"val":"test123.ceye.io"}}}

测试代码

package com.sy.demo;
import com.alibaba.fastjson.JSONObject;


public class Main {
    public static void main(String[] args) {
        String jsonStr = "{"x":{"@type":"java.net.InetSocketAddress"{"address":,"val":"fnn2o3.ceye.io"}}}";
        Object json1 = JSONObject.parse(jsonStr);
        System.out.println(json1);
    }
}

代码执行成功,解析json时系统会调起val里的网址的访问。

通过 CEYE - Monitor service for security testing 网站(注册账号登陆后可在个人中心查看域名),可以查看到有dns解析数据。

修复方案

fastjson在1.2.68之后的版本中引入了safeMode,配置safeMode=true后(重点!仅仅升级版本时没用的),无论白名单和黑名单,都不支持autoType,可一定程度上缓解反序列化Gadgets类变种攻击(关闭autoType注意评估对业务的影响)

1、提高fastjson的maven版本。

使其大于1.2.68,这里使用的1.2.79

 
    com.alibaba 
    fastjson 
    1.2.79 

2、配置safeMode=true。

有3种方式配置,如下:

方式一、通过fastjson.properties文件配置。(推荐)

在resources资源包下创建fastjson.properties文件,配置如下:

fastjson.parser.safeMode=true

方式二:在代码中配置

ParserConfig.getGlobalInstance().setSafeMode(true);

方式三:加上JVM启动参数

-Dfastjson.parser.safeMode=true

修复验证

执行代码

String jsonStr = "{"x":{"@type":"java.net.InetSocketAddress"{"address":,"val":"fnn2o3.ceye.io"}}}";
Object json1 = JSONObject.parse(jsonStr);

执行失败,抛出异常,dns也没有解析记录。

修复成功!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/913576.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号