FastjsonScan

一款探測FastJson漏洞工具

0x00 FastjsonScan now is public ??????

WHAT?

FastjsonExpFramework一共分為探測、利用、混淆、bypass JDK等多個模塊,而FastjsonScan 是其中一部分,通過報錯、請求、依賴庫等探測實現多方面定位fastjson版本

WHY?

現有的fastjson掃描器無法滿足迭代速度如此快的fastjson版本,大部分掃描器早已無人維護,已不適配高版本。我將持續優化此系列項目。

HOW?

目前fastjsonScan支持

??支持批量接口探測

??1.2.83及以下的區間探測(主要分為48,68,80三大安全版本)

??支持報錯回顯探測

??DNS出網檢測

??支持AutoType狀態檢測

??依賴庫檢測

??延遲檢測

TODO

適配內網環境下的探測

適配webpack做自動化掃描

完善DNS回顯探測依賴庫的探測

完善在61版本以上并且不出網的檢測方式

完善其他不同json解析庫的探測 完善相關依賴庫檢測

如果在使用過程中有任何問題歡迎提出issues??

Demo

掃描結果

Usage

FastjsonScan [-u] url [-f] urls.txt [-o] result.txt
-u 目標url,注意需要加上http/https
-f 目標url文件,可以掃描多條url
-o 結果保存文件,默認在當前文件夾下的results.txt文件

0x01 Dev Notes

2022-09-05 0.5

Framework分離出scan模塊

2022-09-05 0.4 beta

??重構版本探測模塊,將判斷fastjson,jackson,org.json,gson分離出來做識別模塊

TODO:

利用dnslog探測依賴庫

利用模塊編寫

2022-09-04 0.35 beta

??修復了48版本的探測payload,該payload在進行80版本的payload探測之后,會觸發tojavaobject從而將java.net.InetAddress類加入白名單,當進行第二次版本探測時會產生誤報

??版本檢測會優先判斷AutoType是否開啟,如果開啟只能模糊區分48以下及以上

2022-09-03 0.34 beta

??重構了版本探測模塊,由之前精確探測分成了3塊(48,68,80)

??重寫了判斷版本的邏輯

??補充了80版本與83版本的探測

TODO:

目標依賴庫環境的探測

AutoType的狀態對版本探測有影響,需要做處理

2022-09-02 0.33 beta

??修改了含有jackson字段的報錯檢測邏輯

??DNS檢測新增10秒的等待時間,防止網絡原因導致誤報

2022-09-01 0.32 beta

??添加多條gadget,部分gadget復現不成功,根據目標的環境添加

??修改了延遲探測的bug

??添加了URLReader的探測鏈

2022-08-07 0.31 beta

??增加了幾條gadgets

2022-08-06 0.3 beta

??完成了AutoType探測模塊

2022-08-05 0.2 beta

??完成了探測模塊的主要部分:包括報錯探測,DNS探測和延遲探測

0x02參考

https://github.com/safe6Sec/Fastjson

https://github.com/hosch3n/FastjsonVulns

https://github.com/iSafeBlue/fastjson-autotype-bypass-demo

下載地址:

https://github.com/a1phaboy/FastjsonScan/releases/tag/v1.1