Fastjson
簡介
Fastjson 是一個 Java 庫,可以將 Java 物件轉換為 JSON 格式,當然它也可以將 JSON 字串轉換為 Java 物件,
Fastjson 可以操作任何 Java 物件,即使是一些預先存在的沒有原始碼的物件,
Fastjson 原始碼地址:https://github.com/alibaba/fastjson
Fastjson 中文 Wiki:https://github.com/alibaba/fastjson/wiki/Quick-Start-CN
特性
1 提供服務器端、安卓客戶端兩種決議工具,性能表現較好,
2 提供了 toJSONString() 和 parseObject() 方法來將 Java 物件與 JSON 相互轉換,呼叫toJSONString方 法即可將物件轉換成 JSON 字串,parseObject 方法則反過來將 JSON 字串轉換成物件,
3 允許轉換預先存在的無法修改的物件(只有class、無源代碼),
4 Java泛型的廣泛支持,
5 允許物件的自定義表示、允許自定義序列化類,
6 支持任意復雜物件(具有深厚的繼承層次和廣泛使用的泛型型別)
漏洞
遠程代碼執行漏洞1(CNVD-2017-02833 )
介紹
fastjson在決議json的程序中,支持使用autoType來實體化某一個具體的類,并呼叫該類的set/get方法來訪問屬性,通過查找代碼中相關的方法,即可構造出一些惡意利用鏈,
影響版本
Fastjson<1.2.24
防護
更新fastjson版本
遠程代碼執行漏洞2(CNVD-2019-22238)
介紹
fastjson于1.2.24版本后增加了反序列化白名單,而在1.2.48以前的版本中,攻擊者可以利用特殊構造的json字串繞過白名單檢測,成功執行任意命令,
影響版本
Fastjson<1.2.48
防護
更新fastjson版本
遠程代碼執行漏洞3
介紹
FastJSON <= 1.2.68 存在遠程代碼執行漏洞,可直接獲取到服務器權限,漏洞成因是Fastjson autotype開關的限制可被繞過,然后鏈式地反序列化某些原本不能被反序列化的有安全風險的類,
影響版本
FastJSON <= 1.2.68
防護
更新fastjson版本,關閉autotype改用白名單,更新jdk(不太現實)
遠程拒絕服務漏洞
介紹
Fastjson多個版本存在遠程拒絕服務漏洞,Fastjson 1.2.60版本以下存在字串決議例外,可導致遠程拒絕服務攻擊,攻擊者即可通過精心構造的請求包對使用Fastjson的服務器造成遠程拒絕服務攻擊,可導致服務器宕機,
影響版本
fastjson <1.2.60
fastjson sec版本>=sec06
防護
更新fastjson版本
指紋識別
若有報錯回顯,可以故意構造不完整json請求,回傳的資料包會進行報錯,
若無報錯回顯,利用dnslog進行回顯
總結
為保證安全,盡量使用、更新最新版本的fastjson,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/291178.html
標籤:其他
