Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
jwt-key-id-injector — Script simple de Python para verificar contra una vulnerabilidad hipotética de JWT. | Kitploit
Herramientas/GitHubGitHub/dariusztytko/jwt-key-id-injector
Generación de PayloadsAnálisis de VulnerabilidadesSeguridad WebPruebas de Penetración
GitHubdariusztytko/jwt-key-id-injector

jwt-key-id-injector

Script simple de Python para verificar contra una vulnerabilidad hipotética de JWT.

Ver Repositorio
5191hace 5 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Inyector de ID de Clave JWT

Script simple de Python para verificar una vulnerabilidad hipotética de JWT.

Supongamos que hay una aplicación que utiliza tokens JWT firmados con el algoritmo HS256. Un token de ejemplo se ve así:

root@kitploit:~
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.zbgd5BNF1cqQ_prCEqIvBTjSxMS8bDLnJAE_wE-0Cxg

El token anterior se puede decodificar a los siguientes datos:

root@kitploit:~
{
  "alg": "HS256",
  "typ": "JWT"
}
{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

Para calcular la firma se utiliza el siguiente secreto:

root@kitploit:~
supersecret

El siguiente pseudocódigo se usa para calcular la firma:

root@kitploit:~
$alg = "sha256";
$data = "...";
$key = "supersecret";

hmac($alg, $data, $key);

Pero, ¿qué pasa si se inyecta un campo inesperado "kid":0 en el encabezado?

root@kitploit:~
{
  "alg": "HS256",
  "typ": "JWT",
  "kid": 0
}
{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

El campo kid es una forma estándar de elegir una clave. Mi suposición es que, si el campo kid no es esperado, puede haber una implementación vulnerable que trate el valor de la cadena $key como un array:

root@kitploit:~
hmac($alg, $data, $key[kid]);

Como resultado, se usará el valor "s" ($key[0]) como secreto HMAC.

Uso

El script injector.py toma el token JWT original, inyecta el campo "kid":0 en el encabezado y genera tokens firmados con secretos de una sola letra (códigos ASCII: 32 - 126 [{space}, !, ", #, ..., x, y, z, {, |, }, ~]):

root@kitploit:~
python3 injector.py eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.zbgd5BNF1cqQ_prCEqIvBTjSxMS8bDLnJAE_wE-0Cxg

Como resultado se crean dos archivos: tokens.txt y tokens_meta.txt. tokens.txt contiene los tokens generados y puede usarse como lista de cargas útiles para Burp Intruder. Si algún token es válido (lo que indica que la aplicación es vulnerable), el archivo tokens_meta.txt se puede usar para verificar qué algoritmo y secreto se usaron para generar el token dado. El archivo tokens_meta.txt contiene los siguientes datos:

root@kitploit:~
token1:algorithm:secret
...
token{n}:algorithm:secret

Cambios

Consulte el CHANGELOG para ver los cambios.

Descargar herramienta