<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 1756字,需瀏覽 4分鐘

           ·

          2022-06-01 15:23

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

          fastjson是目前java語(yǔ)言中最快的json庫(kù),比自稱(chēng)最快的jackson速度要快。

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

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

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

          二、受影響的版本:

          特定依賴(lài)存在下影響 ≤1.2.80

          三、漏洞等級(jí):

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

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

          1. 升級(jí)到1.2.83版本

          從源代碼可以看到:

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

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

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

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

          打開(kāi)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)隔開(kāi)

          ③通過(guò)fastjson.properties文件配置。

          通過(guò)類(lèi)路徑的fastjson.properties文件來(lái)配置,配置方式如下:

          fastjson.parser.safeMode=true

          safeMode場(chǎng)景如何做autoType

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

          ?PPsfbI8Ual.png

          怎么判斷是否用到了autoType

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

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

          使用JSONType.autoTypeCheckHandler

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

          ?lALdWN9vTW.png


          來(lái)源:https://github.com/alibaba/fastjson/wiki/fastjson_safemode

          中科天齊 漏洞治理專(zhuān)家

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

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

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

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

          手機(jī)掃一掃分享

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

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  三级片天天干 | 黄色在线观看有限公司jb啊啊相当到位 | 围产精品久久久久久久妞妞 | 欧美视频色网 | 日本韩国一区二区三区在线观看 |