乐于分享
好东西不私藏

JWT工具项目

JWT工具项目

免责声明

本文只做学术研究使用,不可对真实未授权网站使用,如若非法他用,与平台和本文作者无关,需自行负责!

JWT解密官方网站:https://jwt.io/

burp版本必须大于2024年

Hae

地址:https://github.com/gh0stkey/HaE

功能:高亮提取器,发现JWT数据可高亮显示

JSON Web Tokens

功能:可验证签名是否正确、可直接修改JWT数据,无需去网站修改

可验证签名是否正确:

JWT Editor

功能:可直接修改JWT数据,无需去网站修改、可对JWT进行加密与解密并进行自动化攻击

经测试,2026.02.1版本的Burp在使用JWT Editor插件时,Copy Public Key as PEM功能不能使用,无法复制为PEM,在2024.05.03版本可正常使用

jwtscanner

地址:https://github.com/CompassSecurity/jwtscanner

功能:扫描是否存在JWT漏洞、伪造公钥

自动检测JWT:

手动选择JWT:需要选中JWT数据

伪造公钥:选中两个相同请求但不同的JWT数据

VenomJWT

JWT利用工具:https://github.com/zbool/VenomJWT

功能:对JWT漏洞和密钥爆破服务渗透测试

jwt_tool

JWT爆破工具(python版本建议大于3.6):https://github.com/ticarpi/jwt_tool

功能:用于验证、伪造、扫描和篡改 JWT(JSON Web 令牌)的工具包

安装:python -m pip install -r requirements.txt

参数:位置参数(必选 / 按需指定)jwt:要操作的 JWT 令牌(如果令牌在请求头 / Cookie 中则无需手动指定)可选参数-h, --help 显示此帮助信息并退出-b, --bare 仅返回令牌内容(不输出额外信息)-t TARGETURL, --targeturl TARGETURL		发送携带新 JWT 的 HTTP 请求的目标 URL-r REQUEST, --request REQUEST		作为基准的 URL 请求(用于复用请求模板)-rt RATE, --rate RATE		每分钟最大请求数(限流)-i, --insecure 	对传入的请求使用 HTTP 协议(而非 HTTPS)-rc COOKIES, --cookies COOKIES		随伪造 HTTP 请求发送的 Cookie 内容-rh HEADERS, --headers HEADERS		随伪造 HTTP 请求发送的请求头(可多次使用以添加多个请求头)-pd POSTDATA, --postdata POSTDATA		POST 请求中要发送的所有数据的文本字符串-cv CANARYVALUE, --canaryvalue CANARYVALUE		有效令牌响应中会出现的特征字符串(例如:"Welcome, ticarpi")-np, --noproxy 禁用当前请求的代理(如需永久禁用,修改 jwtconf.ini 配置)-nr, --noredir 禁用当前请求的重定向(如需永久禁用,修改 jwtconf.ini 配置)-M MODE, --mode MODE 扫描模式:  pb = 剧本审计(playbook audit)  er = 模糊测试现有声明以触发错误(fuzz existing claims to force errors)  cc = 模糊测试常见声明(fuzz common claims)  at = 执行所有测试!(All Tests!-X EXPLOIT, --exploit EXPLOIT  利用已知漏洞:    a = alg:none 算法绕过(禁用签名验证)    n = 空签名(null signature)    b = 签名中接受空白密码(blank password accepted in signature)    p = ECDSA 签名中接受 “预知签名”('psychic signature'    s = 伪造 JWKS(需通过 -ju 指定 JWKS 地址,或在 jwtconf.ini 中配置以自动攻击)    k = 密钥混淆攻击(key confusion,需通过 -pk 指定公钥)    i = 注入内联 JWKS(inject inline JWKS)-ju JWKSURL, --jwksurl JWKSURL		可托管伪造 JWKS 的 URL 地址-S SIGN, --sign SIGN 对生成的令牌进行签名:  hs256/hs384/hs512 = HMAC-SHA 签名(需通过 -k/-p 指定密钥)  rs256/rs384/rs512 = RSA 签名(需通过 -pr 指定 RSA 私钥)  es256/es384/es512 = 椭圆曲线签名(需通过 -pr 指定 EC 私钥)  ps256/ps384/ps512 = PSS-RSA 签名(需通过 -pr 指定 RSA 私钥)-pr PRIVKEY, --privkey PRIVKEY	非对称加密使用的私钥-T, --tamper 篡改 JWT 内容		(需通过 -S 设置签名选项,或通过 -X 使用漏洞利用方式)-I, --injectclaims 注入新声明,并使用新值更新现有声明  (需通过 -S 设置签名选项,或通过 -X 使用漏洞利用方式)  (需通过 -hc/-pc 指定目标声明,通过 -hv/-pv 指定注入值 / 值列表)-hc HEADERCLAIM, --headerclaim HEADERCLAIM		要篡改的头部声明(Header claim)-pc PAYLOADCLAIM, --payloadclaim PAYLOADCLAIM		要篡改的载荷声明(Payload claim)-hv HEADERVALUE, --headervalue HEADERVALUE		注入到被篡改头部声明中的值(或包含值的文件路径)-pv PAYLOADVALUE, --payloadvalue PAYLOADVALUE		注入到被篡改载荷声明中的值(或包含值的文件路径)-C, --crack 破解 HMAC-SHA 类型令牌的密钥  (需指定 -d/-p/-kf 中的一个)-d DICT, --dict DICT 破解使用的字典文件路径-p PASSWORD, --password PASSWORD		破解使用的密码(单个密码)-kf KEYFILE, --keyfile KEYFILE		破解使用的密钥文件(针对使用 'kid' 攻击签名的令牌)-V, --verify 验证 RSA 签名是否匹配公钥  (需指定 -pk/-jw)-pk PUBKEY, --pubkey PUBKEY		非对称加密使用的公钥-jw JWKSFILE, --jwksfile JWKSFILE		非对称加密使用的 JSON Web Key Store(JWKS)文件-Q QUERY, --query QUERY		根据令牌 ID 查询日志文件,查看该请求的详细信息示例:-Q jwttool_46820e62fe25c10a3f5498e426a9f03a-v, --verbose 解析和输出时,生成(略多的)详细输出

基础使用:python jwt_tool.py JWT数据 -C -d jwt字典

jwtsecrets

JWT字典:https://github.com/wallarm/jwtsecrets

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » JWT工具项目

猜你喜欢

  • 暂无文章