
JSON Web Token Hack Toolkit
JSON-Web-Token-Hack-Toolkit
Ein leistungsstarkes Toolkit zum Testen, Analysieren und Angreifen von JSON Web Tokens.
cargo install jwt-hack
brew install jwt-hack
sudo snap 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
Sie können sowohl reguläre als auch DEFLATE-komprimierte JWTs dekodieren. Das Tool erkennt und dekomprimiert komprimierte Tokens automatisch.
jwt-hack decode eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0In0.CHANGED
jwt-hack decode COMPRESSED_JWT_TOKEN
Dekodieren Sie JWE-Tokens (JSON Web Encryption), um deren Struktur zu analysieren. Das Tool erkennt das JWE-Format (5 Teile) automatisch und zeigt die Verschlüsselungsdetails an.
# JWE-Token-Struktur dekodieren
jwt-hack decode eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..ZHVtbXlfaXZfMTIzNDU2.eyJ0ZXN0IjoiandlIn0.ZHVtbXlfdGFn
# Zeigt JWE-Header, verschlüsselten Schlüssel, IV, Chiffretext und Authentifizierungs-Tag
jwt-hack encode '{"sub":"1234"}' --secret=your-secret
Sie können die Option --compress verwenden, um DEFLATE-Komprimierung auf die JWT-Payload anzuwenden.
jwt-hack encode '{"sub":"1234"}' --secret=your-secret --compress
# Mit privatem Schlüssel
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
Erstellen Sie JWE-Tokens (JSON Web Encryption) zum Testen verschlüsselter JWT-Szenarien.
# Grundlegende JWE-Kodierung
jwt-hack encode '{"sub":"1234", "data":"encrypted"}' --jwe --secret=your-secret
# JWE-Tokens sind verschlüsselt und können nur mit dem richtigen Schlüssel entschlüsselt werden
jwt-hack encode '{"sensitive":"data"}' --jwe
Prüft, ob die Signatur eines JWTs mit dem angegebenen Secret oder Schlüssel gültig ist.
# Mit Secret (HMAC-Algorithmen wie HS256, HS384, HS512)
jwt-hack verify YOUR_JWT_TOKEN_HERE --secret=your-256-bit-secret
# Mit privatem Schlüssel (für asymmetrische Algorithmen wie RS256, ES256, EdDSA)
jwt-hack verify YOUR_JWT_TOKEN_HERE --private-key path/to/your/RS256_private.key
Wörterbuch- und Brute-Force-Angriffe unterstützen auch mit DEFLATE komprimierte JWTs.
# Wörterbuchangriff
jwt-hack crack -w wordlist.txt JWT_TOKEN
jwt-hack crack -w wordlist.txt COMPRESSED_JWT_TOKEN
# Brute-Force-Angriff
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
Scannen Sie JWT-Tokens automatisch auf häufige Sicherheitsprobleme und Schwachstellen.
# Vollständiger Scan inklusive Erkennung schwacher Secrets und Payload-Generierung
jwt-hack scan JWT_TOKEN
# Secret-Cracking für schnellere Ergebnisse überspringen
jwt-hack scan JWT_TOKEN --skip-crack
# Payload-Generierung überspringen
jwt-hack scan JWT_TOKEN --skip-payloads
# Benutzerdefinierte Wortliste für die Erkennung schwacher Secrets verwenden
jwt-hack scan JWT_TOKEN -w custom_wordlist.txt
# Anzahl der Secret-Testversuche begrenzen
jwt-hack scan JWT_TOKEN --max-crack-attempts 50
Der Scan-Befehl prüft auf:
Starten Sie eine lokale REST-API für Automatisierung und Integrationen. Um eine Authentifizierung zu erzwingen, verwenden Sie --api-key und fügen Sie X-API-KEY in Anfragen ein.
# Auf localhost:3000 mit API-Key-Schutz starten
jwt-hack server --api-key your-api-key
# Beispielanfrage (muss X-API-KEY enthalten, wenn --api-key gesetzt ist)
curl -s http://127.0.0.1:3000/health -H 'X-API-KEY: your-api-key'
jwt-hack kann als MCP-Server ausgeführt werden, sodass KI-Modelle über ein standardisiertes Protokoll mit der JWT-Funktionalität interagieren können.
# MCP-Server starten (kommuniziert über stdio)
jwt-hack mcp
Der MCP-Server stellt die folgenden Tools bereit:
Der MCP-Server ist für die Verwendung durch KI-Modelle und MCP-Clients konzipiert. Jedes Tool akzeptiert JSON-Parameter und gibt strukturierte Antworten zurück.
Decode-Tool:
{
"name": "decode",
"arguments": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
}
Encode-Tool:
{
"name": "encode",
"arguments": {
"json": "{\"sub\":\"1234\",\"name\":\"test\"}",
"secret": "mysecret",
"algorithm": "HS256"
}
}
Sie können den MCP-Server von jwt-hack mit gängigen MCP-fähigen Clients verbinden. Stellen Sie sicher, dass sich die jwt-hack-Binärdatei auf Ihrem System befindet und für den Client zugänglich ist.
VSCode
{
"servers": {
"jwt-hack": {
"type": "stdio",
"command": "jwt-hack",
"args": [
"mcp"
]
}
},
"inputs": []
}
Claude Desktop
{
"mcpServers": {
"jwt-hack": {
"command": "jwt-hack",
"args": ["mcp"],
"env": {}
}
}
}
| Algorithmus | Beschreibung |
|---|---|
| A128GCM | AES-GCM mit 128-Bit-Schlüssel |
| A256GCM | AES-GCM mit 256-Bit-Schlüssel |
| Algorithmus | Beschreibung |
|---|---|
| dir | Direkte Verwendung des gemeinsamen symmetrischen Schlüssels |
DEFLATE-Komprimierungsunterstützung Das
jwt-hack-Toolkit unterstützt DEFLATE-Komprimierung für JWTs.
- Verwenden Sie die Option
--compressmitencode, um komprimierte JWTs zu generieren.- Die Modi
decodeundcrackerkennen und verarbeiten komprimierte JWTs automatisch.
Urx ist ein Open-Source-Projekt und wurde mit ❤️ erstellt. Wenn Sie zu diesem Projekt beitragen möchten, lesen Sie bitte CONTRIBUTING.md und erstellen Sie einen Pull-Request mit Ihren coolen Inhalten.
| Modus | Beschreibung | Unterstützung |
|---|
| Encode | JWT/JWE-Encoder | Secret-basiert / Schlüssel-basiert / Algorithmus / Benutzerdefinierter Header / DEFLATE-Komprimierung / JWE |
| Decode | JWT/JWE-Decoder | Algorithmus, Ausstellungszeit-Prüfung, DEFLATE-Komprimierung, JWE-Struktur |
| Verify | JWT-Verifizierer | Secret-basiert / Schlüssel-basiert (für asymmetrische Algorithmen) |
| Crack | Secret-Cracker | Wörterbuchangriff / Brute Force / DEFLATE-Komprimierung |
| Payload | JWT-Angriffs-Payload-Generator | none / jku&x5u / alg_confusion (signiert via --public-key) / kid & claim injection / claims tampering / Signatur-Manipulation / JWE-Probes / x5c / cty |
| Scan | Schwachstellen-Scanner | Automatisierte Sicherheitsprüfungen auf häufige JWT-Schwachstellen |
| Server | API-Server | API-Server-Modus ausführen (http://localhost:3000) |
| MCP | Model Context Protocol Server | KI-Modell-Integration über standardisiertes Protokoll |
| Tool | Beschreibung | Parameter |
|---|
decode | JWT-Tokens dekodieren | token (string) |
encode | JSON zu JWT kodieren | json (string), secret (optional), algorithm (Standard: HS256), no_signature (boolean) |
verify | JWT-Signaturen verifizieren | token (string), secret (optional), validate_exp (boolean) |
crack | JWT-Tokens knacken | token (string), mode (dict/brute), chars (string), max (number) |
payload | Angriffs-Payloads generieren | token (string), target (string), jwk_attack (optional), jwk_protocol (Standard: https), public_key (optional PEM/Pfad für signierte alg-confusion) |
| Algorithmus | Beschreibung | Typ |
|---|
| HS256 | HMAC mit SHA-256 | Symmetrisch |
| HS384 | HMAC mit SHA-384 | Symmetrisch |
| HS512 | HMAC mit SHA-512 | Symmetrisch |
| RS256 | RSASSA-PKCS1-v1_5 mit SHA-256 | Asymmetrisch |
| RS384 | RSASSA-PKCS1-v1_5 mit SHA-384 | Asymmetrisch |
| RS512 | RSASSA-PKCS1-v1_5 mit SHA-512 | Asymmetrisch |
| ES256 | ECDSA mit P-256 und SHA-256 | Asymmetrisch |
| ES384 | ECDSA mit P-384 und SHA-384 | Asymmetrisch |
| PS256 | RSASSA-PSS mit SHA-256 | Asymmetrisch |
| PS384 | RSASSA-PSS mit SHA-384 | Asymmetrisch |
| PS512 | RSASSA-PSS mit SHA-512 | Asymmetrisch |
| EdDSA | Edwards-Kurven-Digital-Signaturalgorithmus | Asymmetrisch |
| none | Keine digitale Signatur | - |