
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
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
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 estructura de token JWE
jwt-hack decode eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..ZHVtbXlfaXZfMTIzNDU2.eyJ0ZXN0IjoiandlIn0.ZHVtbXlfdGFn
# Muestra la cabecera JWE, clave cifrada, IV, texto cifrado y 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 utilizando 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 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 descifrado de secretos para resultados más rápidos
jwt-hack scan JWT_TOKEN --skip-crack
# Omitir generación de payloads
jwt-hack scan JWT_TOKEN --skip-payloads
# Usar lista de palabras personalizada para detección de secretos débiles
jwt-hack scan JWT_TOKEN -w custom_wordlist.txt
# Limitar intentos de prueba de secretos
jwt-hack scan JWT_TOKEN --max-crack-attempts 50
El comando de escaneo comprueba:
Inicia una API REST local para automatización e integraciones. Para requerir autenticación, usa --api-key e incluye X-API-KEY en las solicitudes.
# Iniciar en localhost:3000 con protección por clave API
jwt-hack server --api-key your-api-key
# Ejemplo de solicitud (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 servidor MCP (se comunica mediante stdio)
jwt-hack mcp
El servidor MCP expone las siguientes herramientas:
El servidor MCP está diseñado para ser utilizado por modelos de IA y clientes MCP. Cada herramienta acepta parámetros JSON y devuelve respuestas estructuradas.
Herramienta Decode:
{
"name": "decode",
"arguments": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
}
Herramienta Encode:
{
"name": "encode",
"arguments": {
"json": "{\"sub\":\"1234\",\"name\":\"test\"}",
"secret": "mysecret",
"algorithm": "HS256"
}
}
Puedes conectar el servidor MCP de jwt-hack a clientes populares compatibles con MCP. Asegúrate de que el binario jwt-hack esté en tu sistema y sea accesible por el cliente.
VSCode
{
"servers": {
"jwt-hack": {
"type": "stdio",
"command": "jwt-hack",
"args": [
"mcp"
]
}
},
"inputs": []
}
Claude Desktop
{
"mcpServers": {
"jwt-hack": {
"command": "jwt-hack",
"args": ["mcp"],
"env": {}
}
}
}
| Algoritmo | Descripción |
|---|---|
| A128GCM | AES-GCM usando clave de 128 bits |
| A256GCM | AES-GCM usando clave de 256 bits |
| Algoritmo | Descripción |
|---|---|
| dir | Uso directo de clave simétrica compartida |
Soporte de compresión DEFLATE El kit de herramientas
jwt-hackadmite compresión DEFLATE para JWTs.
- Usa la opción
--compressconencodepara generar JWTs comprimidos.- Los modos
decodeycrackdetectan y manejan automáticamente los JWTs comprimidos.
Urx es un proyecto de código abierto y está hecho con ❤️ Si quieres contribuir a este proyecto, consulta CONTRIBUTING.md y envía un Pull-Request con tu contenido genial.
| 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, Comprobación de fecha de emisión, Compresión DEFLATE, Estructura JWE |
| Verify | Verificador 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 & claim / manipulación de claims / maleabilidad de firma / sondas JWE / x5c / cty |
| Scan | Escáner de vulnerabilidades | Comprobaciones de seguridad automatizadas para vulnerabilidades JWT comunes |
| Server | Servidor API | Ejecutar modo servidor API (http://localhost:3000) |
| MCP | Servidor de Protocolo de Contexto de Modelo | Integración de modelos de IA mediante protocolo estandarizado |
| Herramienta | Descripción | Parámetros |
|---|
decode | Decodificar tokens JWT | token (cadena) |
encode | Codificar JSON a JWT | json (cadena), secret (opcional), algorithm (predeterminado: HS256), no_signature (booleano) |
verify | Verificar firmas JWT | token (cadena), secret (opcional), validate_exp (booleano) |
crack | Descifrar tokens JWT | token (cadena), mode (dict/brute), chars (cadena), max (número) |
payload | Generar payloads de ataque | token (cadena), target (cadena), jwk_attack (opcional), jwk_protocol (predeterminado: https), public_key (PEM/ruta opcional para alg-confusion firmado) |
| Algoritmo | Descripción | Tipo |
|---|
| HS256 | HMAC usando SHA-256 | Simétrico |
| HS384 | HMAC usando SHA-384 | Simétrico |
| HS512 | HMAC usando SHA-512 | Simétrico |
| RS256 | RSASSA-PKCS1-v1_5 usando SHA-256 | Asimétrico |
| RS384 | RSASSA-PKCS1-v1_5 usando SHA-384 | Asimétrico |
| RS512 | RSASSA-PKCS1-v1_5 usando SHA-512 | Asimétrico |
| ES256 | ECDSA usando P-256 y SHA-256 | Asimétrico |
| ES384 | ECDSA usando P-384 y SHA-384 | Asimétrico |
| PS256 | RSASSA-PSS usando SHA-256 | Asimétrico |
| PS384 | RSASSA-PSS usando SHA-384 | Asimétrico |
| PS512 | RSASSA-PSS usando SHA-512 | Asimétrico |
| EdDSA | Algoritmo de firma digital de curva de Edwards | Asimétrico |
| none | Sin firma digital | - |