1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Fastjson反序列化遠(yuǎn)程代碼執(zhí)行漏洞產(chǎn)生原因及修復(fù)建議

        共 1756字,需瀏覽 4分鐘

         ·

        2022-06-01 15:23

        Fastjason是阿里巴巴的開源JSON解析庫,它可以解析JSON格式的字符串,支持將Java Bean序列化為JSON字符串,也可以從JSON字符串反序列化到JavaBean。由于其序列化jason文件速度快且中文文檔非常全面,所以為國內(nèi)廣大開發(fā)人員所應(yīng)用。

        fastjson是目前java語言中最快的json庫,比自稱最快的jackson速度要快。

        第三方獨(dú)立測試結(jié)果可參考:https://github.com/eishay/jvm-serializers/wiki

        一、漏洞產(chǎn)生原因:

        Fastjson使用黑白名單用于防御反序列化漏洞,并允許用戶在輸入JSON串時(shí)通過“@type”鍵對應(yīng)的value指定任意反序列化類名。在特定條件下可繞過默認(rèn)autoType關(guān)閉限制,攻擊遠(yuǎn)程服務(wù)器,風(fēng)險(xiǎn)影響較大(也就是通常所指的“Gadget”)。

        二、受影響的版本:

        特定依賴存在下影響 ≤1.2.80

        三、漏洞等級:

        風(fēng)險(xiǎn)評級:高危

        四、官方修復(fù)方案:

        1. 升級到1.2.83版本

        從源代碼可以看到:

        - 該版本源代碼刪除了很多白名單對應(yīng)的hash;

        - checkAutoType(String typeName, Class expectClass, int features)方法,添加了新的校驗(yàn)包含mask和autoTypeSupport,用來規(guī)避未經(jīng)驗(yàn)證的autoType的注入。

        2. 原來1.2.68以后到1.2.80的版本:開啟配置safeMode,讓白名單和黑名單都不支持autoType,從而可杜絕反序列化Gadgets類變種攻擊。

        在1.2.68版本中,fastjson增加了safeMode的支持。safeMode打開后,完全禁用autoType。所有的安全修復(fù)版本sec10也支持SafeMode配置。

        打開SafeMode功能(1.2.68之后的版本)

        有三種配置SafeMode方式,如下:

        ①在代碼中配置

        ParserConfig.getGlobalInstance().setSafeMode(true);

        注意,如果使用new ParserConfig的方式,需要注意單例處理,否則會(huì)導(dǎo)致低性能full gc。

        ②加上JVM啟動(dòng)參數(shù)

        -Dfastjson.parser.safeMode=true

        如果有多個(gè)包名前綴,用逗號(hào)隔開

        ③通過fastjson.properties文件配置。

        通過類路徑的fastjson.properties文件來配置,配置方式如下:

        fastjson.parser.safeMode=true

        safeMode場景如何做autoType

        在1.2.68之后的版本,提供了AutoTypeCheckHandler擴(kuò)展,可以自定義類接管autoType, 通過ParserConfig#addAutoTypeCheckHandler方法注冊。

        ?PPsfbI8Ual.png

        怎么判斷是否用到了autoType

        看序列化的代碼中是否用到了SerializerFeature.WriteClassName

        JSON.toJSONString(obj, SerializerFeature.WriteClassName); // 這種使用會(huì)產(chǎn)生@type

        使用JSONType.autoTypeCheckHandler

        在fastjson 1.2.71版本中,提供了通過JSONType配置autoTypeCheckHandler的方法,比如:

        ?lALdWN9vTW.png


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

        中科天齊 漏洞治理專家

        中科天齊由中科院研究員李煉博士創(chuàng)立,以自主研究成果WuKong靜態(tài)軟件安全測試工具為主打產(chǎn)品,團(tuán)隊(duì)?wèi){借多年在程序分析領(lǐng)域的技術(shù)積累,致力打造安全漏洞治理領(lǐng)域新生態(tài)的高新技術(shù)企業(yè)。

        WuKong靜態(tài)軟件安全測試工具

        WuKong是一款國產(chǎn)信創(chuàng)SAST產(chǎn)品,采用自主專利技術(shù)的程序分析引擎,多種創(chuàng)新性的靜態(tài)分析技術(shù),結(jié)合深度學(xué)習(xí)和人工智能等多種方法,能夠?qū)浖a進(jìn)行全方位的 安全掃描和安全分析。

        瀏覽 81
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            欧美一区国产一区 | 久久三级片成年人 | 手伸进老师湿润的三角裤 | 亚洲乱亚洲乱妇19p | 三级片在线播放网站 | 麻豆tv在线入口 | 精品www | 黄动漫视频在线观看 | 变态另类成人AV一区二区 | 国产色影院 |