freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

如何使用MyJWT测试你的JWT是否存在安全问题
Alpha_h4ck 2024-09-08 10:13:07 84776

关于MyJWT

MyJWT是一款针对JSON Web Token(JWT)的安全检测工具,该工具适用于渗透测试人员、CTF 玩家或开发人员,可以快速针对JWT执行安全扫描与检测。

功能介绍

1、支持将新的 jwt 复制到剪贴板;

2、用户界面;

3、颜色高亮输出;

4、修改 jwt (header/Payload);

5、无漏洞;

6、RSA/HMAC 混淆;

7、使用密钥对 jwt 进行签名;

8、暴力破解密钥;

9、使用正则表达式来猜测密钥以破解 jwt;

10、Kid注入;

11、Jku 旁路;

12、X5u 旁路;

工具要求

recommonmark==0.7.1

Sphinx==7.3.7

sphinx-markdown-tables==0.0.17

sphinx-rtd-theme==2.0.0

工具安装

由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。

源码安装

广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/mBouamama/MyJWT.git

然后切换到项目目录中,使用pip命令和项目提供的requirements.txt安装该工具所需的其他依赖组件:

cd ./MyJWT

pip install -r requirements.txt

PyPI安装

pip install myjwt

Docker运行

docker run -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt

 

# 加载字典文件所在卷

docker run -v $(pwd)/wordlist:/home/wordlist/  -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt

# Windows

docker run -v %CD%/wordlist:/home/wordlist/  -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt

BlackArch安装

pacman -S myjwt

工具使用

查看工具帮助选项:

python MyJWT/myjwt_cli.py --help


工具运行演示

修改你的 Jwt

命令行界面:

myjwt YOUR_JWT --add-payload "username=admin" --add-header "refresh=false"

代码:

from myjwt.modify_jwt import add_header, change_payload

from myjwt.utils import jwt_to_json, SIGNATURE, encode_jwt

 

jwt_json = jwt_to_json(jwt)

jwt_json = add_header(jwt_json, {"kid": "001"})

jwt_json = change_payload(jwt_json, {"username": "admin"})

jwt = encode_jwt(jwt_json) + "." + jwt_json[SIGNATURE]

无漏洞

命令行界面:

myjwt YOUR_JWT --none-vulnerability

代码:

from myjwt.utils import jwt_to_json, SIGNATURE, encode_jwt

from myjwt.vulnerabilities import none_vulnerability

jwt_json = jwt_to_json(jwt)

jwt = none_vulnerability(encode_jwt(jwt_json) + "." + jwt_json[SIGNATURE])

签名密钥

命令行界面:

myjwt YOUR_JWT --sign YOUR_KEY

代码:

from myjwt.modify_jwt import signature

from myjwt.utils import jwt_to_json

key = "test"

jwt = signature(jwt_to_json(jwt), key)

暴力破解

命令行界面:

myjwt YOUR_JWT --bruteforce PATH

代码:

from myjwt.vulnerabilities import bruteforce_wordlist

wordlist = "../../wordlist/common_pass.txt"

key = bruteforce_wordlist(jwt, wordlist)

破解

命令行界面:

myjwt YOUR_JWT --crack REGEX

RSA/HMAC 混淆

命令行界面:

myjwt YOUR_JWT --hmac FILE

代码:

from myjwt.vulnerabilities import confusion_rsa_hmac

file = "public.pem"

jwt = confusion_rsa_hmac(jwt, file)

Kid注入

命令行界面:

myjwt YOUR_JWT --kid INJECTION

代码:

from myjwt.modify_jwt import signature

from myjwt.utils import jwt_to_json

from myjwt.vulnerabilities import inject_sql_kid

 

injection = "../../../../../../dev/null"

sign = ""

jwt = inject_sql_kid(jwt, injection)

jwt = signature(jwt_to_json(jwt), sign)

发送你的新 Jwt 到 url

命令行界面:

myjwt YOUR_JWT -u YOUR_URL -c "jwt=MY_JWT" --non-vulnerability --add-payload "username=admin"

Jku

命令行界面:

myjwt YOUR_JWT --jku YOUR_URL

代码:

from myjwt.vulnerabilities import jku_vulnerability

new_jwt = jku_vulnerability(jwt=jwt, url="MYPUBLIC_IP")

print(jwt)

X5U

命令行界面:

myjwt YOUR_JWT --x5u YOUR_URL

代码:

from myjwt.vulnerabilities import x5u_vulnerability

newJwt = x5u_vulnerability(jwt=jwt, url="MYPUBLIC_IP")

print(jwt)

许可证协议

本项目的开发与发布遵循MIT开源许可协议。

项目地址

MyJWT:【GitHub传送门

参考资料

http://myjwt.readthedocs.io/

# 网络安全 # web安全 # 安全检测 # JWT # Json Web Token
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 Alpha_h4ck 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
Alpha_h4ck LV.10
好好学习,天天向上
  • 2359 文章数
  • 1022 关注者
Tetragon:一款基于eBPF的运行时环境安全监控工具
2025-01-21
DroneXtract:一款针对无人机的网络安全数字取证工具
2025-01-21
CNAPPgoat:一款针对云环境的安全实践靶场
2025-01-21
文章目录