Skip to content

smallfox233/JsonExp

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
img
 
 
 
 
 
 
 
 
 
 

简介

作者: 小狐狸FM

项目: https://github.com/smallfox233/JsonExp

版本: 1.3.2

1. 根据现有payload,检测目标是否存在fastjson或jackson漏洞(工具仅用于检测漏洞)
2. 若存在漏洞,可根据对应payload进行后渗透利用
3. 若出现新的漏洞时,可将最新的payload新增至txt中(需修改格式)
4. 工具无法完全替代手工检测,仅作为辅助工具使用

使用

参数 别名 作用 例子
-u --url 指定目标url -u http://www.test.com
-uf --urlfile 指定目标url文档,每行一个url -uf url.txt
-req --request 指定请求包 -req request.txt
-to --timeout 指定请求超时时长,默认为5秒 -to 8
-f --file 指定payload文本路径,默认为template/fastjson.txt -f payload.txt
-t --type 指定HTTP请求类型,默认为post -t get
-l --ldap 指定ldap地址 -l xxx.xxx.xxx:8080
-r --rmi 指定rmi地址 -r xxx.xxx.xxx:8080
-c --cookie 指定cookie值 --cookie "name=xxx;sessionid=xxxxx"
-pro --protocol 指定请求包所使用的协议,需结合-req参数使用,默认为http协议 -req request.txt -pro https

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.1
Host: 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目录下生成域名.htmlip.html文件

About

fastjson漏洞批量检测工具

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages