JsonExp簡介

版本:1.3.5

1. 根據現有payload,檢測目標是否存在fastjson或jackson漏洞(工具僅用于檢測漏洞)2. 若存在漏洞,可根據對應payload進行后滲透利用3. 若出現新的漏洞時,可將最新的payload新增至txt中(需修改格式)4. 工具無法完全替代手工檢測,僅作為輔助工具使用

使用

windows系統

在JsonExp.exe目錄打開cmd界面
檢測單個站點:JsonExp -u [目標] -l [LDAP服務地址]
根據請求包檢測單個站點:JsonExp -req [目標.txt] -l [LDAP服務地址]
根據文本檢測多個站點:JsonExp -uf [目標.txt] -l [LDAP服務地址]

Linux系統

添加權限:chmod +x JsonExp
檢測單個站點:./JsonExp -u [目標] -l [LDAP服務地址]
根據請求包檢測單個站點:./JsonExp -req [目標.txt] -l [LDAP服務地址]
根據文本檢測多個站點:./JsonExp -uf [目標.txt] -l [LDAP服務地址]

DNSlog檢測

若出現dnslog回彈,可根據前面的編號去尋找對應的payload

編號.地址

LDAP檢測

若為內網環境/目標無法DNS解析時,可使用工具在本地/云服務器起一個LDAP服務

https://github.com/WhiteHSBG/JNDIExploit

將域名換成IP:端口即可(上圖中使用的是8090作為LDAP服務端口)

此時LDAP服務器可收到路徑信息,可根據路徑信息來定位觸發漏洞的payload

請求包檢測

若使用-req參數進行檢測時,需要設置需要檢測的變量值位置

將請求中需要檢測的位置替換為$payload$,其余位置不變,保存為req.txt(文件名任意)

格式:

POST /xxx HTTP/1.1Host: xxx
$payload$

然后通過-req指定該文件,根據請求包進行漏洞檢測

JsonExp -req req.txt -l xxx.xxx.xxx

示例:

注意:

1. $payload$必須英文小寫2. 若$payload$指定多個位置時仍可檢測漏洞,但無法定位具體的漏洞參數3. 若$payload$設置在請求頭中,將無法檢測4. 一個文件僅限一個請求包,出現多個請求包時將會出錯5. 發送時默認采用http協議,若請求包為https協議,需使用-pro https來指定協議類型

Payload介紹

默認的payload保存在template文件夾下

格式: {.........$type$://$ip$/路徑....}#注釋內容

$type$  用于指定ldap或rmi服務類型(必須小寫)$ip$  用于指定ldap地址或rmi地址(必須小寫)路徑  若LDAP服務器地址為IP時,需要通過不同的路徑來定位觸發漏洞的payload

注意:

1. 每行分為兩個部分,一個是漏洞利用的payload,另一個部分是注釋2. payload必須寫在注釋的前面3. 注釋符#及其之后的內容,將會在檢測時被忽略4. 若payload為多行,則需將其中的換行符刪去,保證一個payload占據一行5. $type$和$ip$必須英文小寫

結果展示功能

輸出結果參考自xray,模板路徑為template/report.html,請勿刪除該文件

執行程序后,將會在result目錄下生成域名.html或ip.html文件

代理設置

使用--proxy設置代理,可用于調試信息、繞waf等操作

--proxy http://127.0.0.1:8080

burpsuite中設置代理

將工具的流量代理到burpsuite中(此工具不能適應所有的情況,可通過該方式對payload進行適當調整)

下載鏈接

  • 網盤鏈接:https://pan.quark.cn/s/c70fbc880f14
  • https://github.com/smallfox233/JsonExp