
JSON Web Token ハックツールキット
JSON Web Token Hack Toolkit
JSON Web Tokenのテスト、分析、攻撃を行うための高性能ツールキット。
cargo install jwt-hack
brew install jwt-hack
sudo snap install jwt-hack
choco install jwt-hack
git clone https://github.com/hahwul/jwt-hack
cd jwt-hack
cargo install --path .
docker pull ghcr.io/hahwul/jwt-hack:latest
docker pull hahwul/jwt-hack:v2.6.0
| モード | 説明 | サポート |
|---|---|---|
| Encode | JWT/JWEエンコーダー | シークレットベース / キーベース / アルゴリズム / カスタムヘッダー / DEFLATE圧縮 / JWE |
| Decode | JWT/JWEデコーダー | アルゴリズム、発行日時チェック、DEFLATE圧縮、JWE構造 |
| Verify | JWT検証ツール | シークレットベース / キーベース(非対称アルゴリズム用) |
| Crack | シークレットクラッカー | 辞書攻撃 / ブルートフォース / DEFLATE圧縮 |
| Payload | JWT攻撃ペイロードジェネレーター | none / jku&x5u / alg_confusion(--public-keyで署名) / kid & クレームインジェクション / クレーム改ざん / 署名可鍛性 / JWEプローブ / x5c / cty |
| Scan | 脆弱性スキャナー | 一般的なJWT脆弱性に対する自動セキュリティチェック |
| Server | APIサーバー | APIサーバーモードで実行 (http://localhost:3000) |
| MCP | Model Context Protocolサーバー | 標準化プロトコルによるAIモデル統合 |
通常のJWTとDEFLATE圧縮されたJWTの両方をデコードできます。ツールは圧縮されたトークンを自動的に検出して解凍します。
jwt-hack decode eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0In0.CHANGED
jwt-hack decode COMPRESSED_JWT_TOKEN
JWE(JSON Web Encryption)トークンをデコードして構造を分析します。ツールはJWE形式(5パート)を自動的に検出し、暗号化の詳細を表示します。
# Decode JWE token structure
jwt-hack decode eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..ZHVtbXlfaXZfMTIzNDU2.eyJ0ZXN0IjoiandlIn0.ZHVtbXlfdGFn
# Shows JWE header, encrypted key, IV, ciphertext, and authentication tag
jwt-hack encode '{"sub":"1234"}' --secret=your-secret
--compressオプションを使用して、JWTペイロードにDEFLATE圧縮を適用できます。
jwt-hack encode '{"sub":"1234"}' --secret=your-secret --compress
# With Private Key
ssh-keygen -t rsa -b 4096 -E SHA256 -m PEM -P "" -f RS256.key
jwt-hack encode '{"a":"z"}' --private-key RS256.key --algorithm=RS256
暗号化されたJWTシナリオをテストするためのJWE(JSON Web Encryption)トークンを作成します。
# Basic JWE encoding
jwt-hack encode '{"sub":"1234", "data":"encrypted"}' --jwe --secret=your-secret
# JWE tokens are encrypted and can only be decrypted with the proper key
jwt-hack encode '{"sensitive":"data"}' --jwe
提供されたシークレットまたはキーを使用して、JWTの署名が有効かどうかを確認します。
# With Secret (HMAC algorithms like HS256, HS384, HS512)
jwt-hack verify YOUR_JWT_TOKEN_HERE --secret=your-256-bit-secret
# With Private Key (for asymmetric algorithms like RS256, ES256, EdDSA)
jwt-hack verify YOUR_JWT_TOKEN_HERE --private-key path/to/your/RS256_private.key
辞書攻撃とブルートフォース攻撃は、DEFLATEで圧縮されたJWTもサポートしています。
# Dictionary attack
jwt-hack crack -w wordlist.txt JWT_TOKEN
jwt-hack crack -w wordlist.txt COMPRESSED_JWT_TOKEN
# Bruteforce attack
jwt-hack crack -m brute JWT_TOKEN --max=4
jwt-hack crack -m brute COMPRESSED_JWT_TOKEN --max=4
jwt-hack payload JWT_TOKEN --jwk-attack evil.com --jwk-trust trusted.com
JWTトークンの一般的なセキュリティ問題や脆弱性を自動的にスキャンします。
# Full scan including weak secret detection and payload generation
jwt-hack scan JWT_TOKEN
# Skip secret cracking for faster results
jwt-hack scan JWT_TOKEN --skip-crack
# Skip payload generation
jwt-hack scan JWT_TOKEN --skip-payloads
# Use custom wordlist for weak secret detection
jwt-hack scan JWT_TOKEN -w custom_wordlist.txt
# Limit secret testing attempts
jwt-hack scan JWT_TOKEN --max-crack-attempts 50
scanコマンドは以下をチェックします:
自動化と統合のためのローカルREST APIを起動します。認証を必須にするには、--api-keyを使用し、リクエストにX-API-KEYを含めます。
# Start on localhost:3000 with API key protection
jwt-hack server --api-key your-api-key
# Example request (must include X-API-KEY when --api-key is set)
curl -s http://127.0.0.1:3000/health -H 'X-API-KEY: your-api-key'
jwt-hackはMCPサーバーとして実行でき、AIモデルが標準化されたプロトコルを通じてJWT機能と対話できるようにします。
# Start MCP server (communicates via stdio)
jwt-hack mcp
MCPサーバーは以下のツールを公開します:
| ツール | 説明 | パラメータ |
|---|---|---|
decode | JWTトークンをデコード | token (string) |
encode | JSONをJWTにエンコード | json (string), secret (optional), algorithm (default: HS256), no_signature (boolean) |
verify | JWT署名を検証 | token (string), secret (optional), validate_exp (boolean) |
crack | JWTトークンをクラック | token (string), mode (dict/brute), chars (string), max (number) |
payload | 攻撃ペイロードを生成 | token (string), target (string), jwk_attack (optional), jwk_protocol (default: https), public_key (optional PEM/path for signed alg-confusion) |
MCPサーバーは、AIモデルとMCPクライアントが使用するように設計されています。各ツールはJSONパラメータを受け取り、構造化されたレスポンスを返します。
Decodeツール:
{
"name": "decode",
"arguments": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
}
Encodeツール:
{
"name": "encode",
"arguments": {
"json": "{\"sub\":\"1234\",\"name\":\"test\"}",
"secret": "mysecret",
"algorithm": "HS256"
}
}
jwt-hackのMCPサーバーを、MCP対応の一般的なクライアントに接続できます。jwt-hackバイナリがシステム上にあり、クライアントからアクセス可能であることを確認してください。
VSCode
{
"servers": {
"jwt-hack": {
"type": "stdio",
"command": "jwt-hack",
"args": [
"mcp"
]
}
},
"inputs": []
}
Claude Desktop
{
"mcpServers": {
"jwt-hack": {
"command": "jwt-hack",
"args": ["mcp"],
"env": {}
}
}
}