🇺🇸 English | 🇪🇸 Español
🔭 JWTelescope es una herramienta CLI avanzada para decodificar, inspeccionar y realizar análisis de seguridad sobre JSON Web Tokens (JWT). Está diseñada para bug bounty hunters, pentesters y desarrolladores que buscan obtener información rápida sobre la estructura de los JWT, sus claims y configuraciones incorrectas comunes.
La herramienta se centra en el análisis de solo lectura y en la evaluación de riesgos, lo que la hace segura para usar durante las fases de reconocimiento y triage.
-
Decodificación del header y payload del JWT (Base64URL)
-
Salida en terminal limpia, con colores y formato legible
-
Detección automática de problemas de seguridad comunes en JWT
-
Sistema de puntuación de riesgo: Bajo / Medio / Alto
-
Conversión de timestamps a formato legible (
exp,iat,nbf) -
Detección de patrones peligrosos:
alg: noneexpausente o expirado- Tokens con una validez excesivamente larga
auddébil o genérico- Valores
kidsospechosos (path traversal, predictibilidad) - Riesgo de confusión de algoritmo simétrico (HS256)
- Claims personalizados peligrosos (
admin,role,scope, etc.) - URLs externas en
jku/x5u
-
Salida JSON estructurada para reportes y automatización
-
Modos compatibles con pipes (
--raw,--stdin) -
Dependencias mínimas (solo librería estándar de Python)
- Reconocimiento en bug bounty
- Detección de malas configuraciones en JWT
- Triage de tokens durante pruebas de APIs
- Reportes de seguridad (HackerOne / Bugcrowd)
- Aprendizaje y comprensión interna de JWT
Clona el repositorio:
git clone https://github.com/urdev4ever/jwtelescope.git
cd jwtelescopeHaz el script ejecutable (opcional):
chmod +x jwtelescope.pyRequisitos:
- Python 3.8+
- No se requieren librerías externas
./jwtelescope.py -r "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."./jwtelescope.py -f token.jwtecho "JWT_TOKEN" | ./jwtelescope.py --stdin./jwtelescope.py -r "JWT_TOKEN" --raw./jwtelescope.py -r "JWT_TOKEN" --only-warnings./jwtelescope.py -r "JWT_TOKEN" --score./jwtelescope.py -r "JWT_TOKEN" --json > report.json[ ! ] Nota: solo puedes usar `./jwtelescope.py` si lo hiciste ejecutable; de lo contrario deberás usar:
python jwtelescope.py -
Header decodificado
-
Payload decodificado
-
Detalles de la firma
-
Metadatos del token (longitud, algoritmo, key ID)
-
Resumen de claims comunes
-
Hallazgos de seguridad con severidad
-
Puntuación de riesgo general
| Problema | Severidad |
|---|---|
alg: none |
Crítica |
exp ausente |
Alta |
| Token expirado | Alta |
| Expiración > 10 años | Alta |
aud débil |
Media |
| Riesgo de confusión HS256 | Media |
| Claims personalizados peligrosos | Media |
nbf ausente |
Baja |
Niveles finales de riesgo:
- Bajo: Mayormente informativo
- Medio: Posible debilidad de seguridad
- Alto: Mala configuración probablemente explotable
{
"metadata": {},
"token_info": {},
"header": {},
"payload": {},
"security_analysis": {},
"common_claims": {}
}Diseñada para una integración sencilla en scripts, pipelines de CI o reportes.
JWTelescope:
- NO modifica tokens
- NO fuerza secretos
- NO evade autenticación
Es una herramienta de análisis pasivo, pensada para pruebas de seguridad legítimas.
Esta herramienta está destinada únicamente a fines educativos y pruebas de seguridad autorizadas. Prueba siempre contra sistemas que poseas o para los que tengas permiso explícito.
Las pull requests son bienvenidas si:
- Mejoran la lógica de detección de seguridad en JWT o agregan nuevos patrones de mala configuración
- Mejoran la usabilidad de la CLI, la claridad del output o los formatos de reporte (JSON / flujos con piping)
- Mantienen la filosofía de análisis pasivo y solo lectura de la herramienta y conservan las dependencias mínimas
Hecho con <3 por URDev
