Herramienta de explotación de RCE remota de React Server Components
📖 Introducción a la herramienta
La herramienta de explotación de RCE remota de React Server Components es una herramienta de pruebas de seguridad diseñada específicamente para vulnerabilidades de ejecución remota de código en los frameworks React Server Components y Next.js. Proporciona una interfaz gráfica de usuario y admite múltiples modos de ataque y funciones de detección por lotes.
⚠️ Aviso legal: Esta herramienta está destinada únicamente a pruebas de seguridad autorizadas y competiciones CTF. Está estrictamente prohibido su uso para ataques ilegales. Cualquier consecuencia derivada del uso de esta herramienta será responsabilidad del usuario.
🎯 Alcance de las vulnerabilidades afectadas
Versiones afectadas de React Server
- React Server 19.0.0
- React Server 19.0.1 (nota: algunos parches iniciales no cubren completamente la vulnerabilidad)
- React Server 19.1.* (todas las versiones 19.1.x)
- React Server 19.2.0
Versiones afectadas de Next.js
- Next.js v15.0.0 - v15.0.4
- Next.js v15.1.0 - v15.1.8
- Next.js v15.2.x - v15.5.6
- Next.js v16.0.0 - v16.0.6
- Next.js v14.3.0-canary.77 y versiones Canary posteriores
Otros componentes afectados
- Dify - plataforma de desarrollo de aplicaciones de IA
- NextChat - framework de aplicaciones de chat
- Otras aplicaciones construidas con versiones afectadas de React Server Components o Next.js
Nota: Si su aplicación utiliza cualquiera de las versiones anteriores, se recomienda actualizar inmediatamente a una versión segura o tomar las medidas de protección adecuadas.
✨ Características
🎯 Funciones principales
- Detección de vulnerabilidades: detecta rápidamente si el objetivo presenta la vulnerabilidad RCE de React Server Components / Next.js
- Salida de comandos: ejecuta comandos del sistema directamente y obtiene la salida
- Inyección de webshell en memoria: inyecta una webshell persistente en el servidor de destino
- Reverse Shell: obtiene un shell interactivo del sistema objetivo
- Escaneo por lotes: admite la detección por lotes de múltiples URLs objetivo para identificar rápidamente sistemas vulnerables
🔧 Funciones auxiliares
- Soporte de proxy: admite la configuración de un proxy HTTP (como Burp Suite) para facilitar el análisis del tráfico
- Cabeceras de solicitud personalizadas: permite añadir cabeceras HTTP personalizadas para evadir protecciones simples
- Registro en tiempo real: los registros de operaciones se muestran en tiempo real para facilitar el seguimiento del proceso de prueba
- Configuración de tiempo de espera: permite personalizar el tiempo de espera de las solicitudes para adaptarse a diferentes entornos de red
🚀 Inicio rápido
Requisitos del entorno
- Java 8 o superior
- Sistemas operativos Windows / Linux / macOS
Iniciar la herramienta
-
Haga doble clic en el archivo React Server Components 远程RCE.jar
-
O iníciela mediante la línea de comandos:
java -jar React Server Components 远程RCE.jar
-
Al iniciarse por primera vez se mostrará el aviso legal; léalo atentamente y acéptelo para continuar usando la herramienta
📋 Guía de uso
1️⃣ Configuración básica
Antes de utilizar cualquier función, debe configurar la información básica:
- URL objetivo: introduzca la dirección del sitio web a probar (por ejemplo:
http://192.168.1.100:3000)
- Ruta de ataque: ruta de la aplicación (por defecto:
/apps, ajustable según el objetivo)
- Tiempo de espera: segundos de tiempo de espera de la solicitud (por defecto: 30 segundos)
- Cabeceras de solicitud personalizadas: opcional, una por línea, con el formato
Header-Name: value
2️⃣ Detección de vulnerabilidades
- Rellene la URL objetivo y la configuración básica
- Haga clic en el botón "Probar vulnerabilidad"
- Espere el resultado de la detección; la herramienta determinará automáticamente si el objetivo presenta la vulnerabilidad
Consejo: se recomienda realizar primero la detección de vulnerabilidades y confirmar que el objetivo es vulnerable antes de continuar con otras operaciones.
🎮 Explicación detallada de los modos de ataque
Modo 1: Salida de comandos
Escenario de uso: cuando se necesita ejecutar comandos del sistema y ver el resultado de la ejecución
Pasos de uso:
- Cambie a la pestaña "Salida de comandos"
- En el campo de entrada de comandos, introduzca el comando a ejecutar (por ejemplo:
whoami, ipconfig, ls -la)
- Haga clic en el botón "Ejecutar comando"
- Consulte el resultado de la ejecución en el área de texto inferior
Ejemplos de comandos habituales:
- Windows:
whoami, ipconfig, dir, net user
- Linux:
whoami, ifconfig, ls -la, uname -a
Modo 2: Inyección de webshell en memoria
Escenario de uso: cuando se necesita dejar una puerta trasera persistente en el servidor de destino
Pasos de uso:
-
Cambie a la pestaña "Inyección de webshell en memoria"
-
Configure la ruta de acceso de la webshell en memoria (por ejemplo: /exec)
-
Haga clic en el botón "Inyectar webshell en memoria"
-
Una vez inyectada correctamente, puede ejecutar comandos de la siguiente manera:
访问:http://目标地址/exec?cmd=whoami
Instrucciones de uso:
- La webshell en memoria se registra en la memoria de la aplicación de destino y no deja archivos en el disco
- La webshell en memoria deja de ser válida tras reiniciar el servidor
- El comando a ejecutar se pasa mediante el parámetro de URL
cmd
Modo 3: Reverse Shell
Escenario de uso: cuando se necesita obtener un shell interactivo del sistema objetivo
Pasos de uso:
-
Inicie un listener en su máquina local (por ejemplo, con netcat):
-
Cambie a la pestaña "Reverse Shell"
-
Introduzca la IP del listener (la dirección IP de su máquina)
-
Introduzca el puerto del listener (por ejemplo: 4444)
-
Haga clic en el botón "Enviar reverse shell"
-
Vuelva a la ventana de netcat y espere la conexión del shell
Notas importantes:
- Asegúrese de que el servidor de destino pueda acceder a su IP y puerto de escucha
- El cortafuegos debe permitir las conexiones entrantes en el puerto correspondiente
- En entornos reales puede estar sujeto a restricciones de políticas de red
Modo 4: Detección por lotes
Escenario de uso: cuando se necesita escanear múltiples objetivos en busca de vulnerabilidades
Pasos de uso:
- Cambie a la pestaña "Detección por lotes"
- En el cuadro de texto, introduzca la lista de URLs objetivo (una por línea)
- Haga clic en el botón "Iniciar escaneo"
- Revise los resultados del escaneo; la herramienta marcará los objetivos que presentan vulnerabilidades
⚙️ Configuración avanzada
Configurar proxy HTTP
Se utiliza para reenviar el tráfico a herramientas de captura de paquetes como Burp Suite, a fin de facilitar el análisis de solicitudes y respuestas.
Pasos de configuración:
- Haga clic en el menú superior "Configuración" → "Configuración de proxy"
- Seleccione "Habilitar"
- Introduzca el host del proxy (por ejemplo:
127.0.0.1)
- Introduzca el puerto del proxy (por ejemplo:
8080)
- Haga clic en "Guardar"
Configuración de Burp Suite:
- Asegúrese de que el listener de proxy de Burp Suite esté iniciado
- Dirección de escucha por defecto:
127.0.0.1:8080
- En Burp puede interceptar y modificar todas las solicitudes enviadas por la herramienta
Visualización del estado del proxy:
- Una vez configurado, la esquina superior derecha de la interfaz mostrará el estado del proxy
- Verde indica que está habilitado; gris indica que no está configurado
🛡️ Recomendaciones de seguridad
- Úsela únicamente en entornos autorizados: asegúrese de contar con una autorización explícita antes de probar un objetivo
- No la utilice en entornos de producción: evite causar daños a sistemas en producción
- Proteja los datos de las pruebas: la información sensible obtenida durante las pruebas debe guardarse de forma segura
- Cumpla las leyes y regulaciones: las pruebas de penetración no autorizadas pueden infringir la ley
- Uso en competiciones CTF: esta herramienta es adecuada para entornos legales como CTF y campos de entrenamiento
❓ Preguntas frecuentes
P1: ¿Qué hago si aparece "No se detectó ninguna vulnerabilidad"?
Posibles causas:
- La URL objetivo es incorrecta o el servicio no está iniciado
- El objetivo no presenta esta vulnerabilidad
- La ruta de ataque está mal configurada
- No hay conectividad de red o el cortafuegos bloquea la conexión
Soluciones:
- Compruebe si la URL objetivo es accesible normalmente
- Intente ajustar los parámetros de la ruta de ataque
- Revise la conexión de red y la configuración del proxy
P2: ¿La ejecución de comandos no muestra salida?
Posibles causas:
- El comando se ejecutó correctamente pero no generó salida (por ejemplo, ciertos comandos de escritura de archivos)
- Restricciones de permisos del sistema de destino
- Error de sintaxis en el comando
Soluciones:
- Intente ejecutar un comando que produzca una salida clara (como
id)
- Compruebe si la sintaxis del comando es correcta
- Consulte la información detallada en el área de registro inferior
P3: ¿Falla la conexión del reverse shell?
Posibles causas:
- El objetivo no puede acceder a su IP de escucha
- El cortafuegos bloquea la conexión
- El puerto está ocupado
Soluciones:
- Confirme que el servicio de escucha está iniciado (
nc -lvnp 端口)
- Revise la configuración del cortafuegos y permita el puerto correspondiente
- Asegúrese de que la dirección IP sea correcta (si el objetivo y usted están en la misma red interna, use la IP interna)
P4: ¿Cómo puedo ver las solicitudes y respuestas detalladas?
Soluciones:
- Configure un proxy HTTP (como Burp Suite)
- Vea el tráfico HTTP completo en la herramienta de proxy
- El área de registro inferior también mostrará información clave
📞 Soporte técnico
- Autor: CrabSec
- Versión: v1.0.0
📜 Aviso de derechos de autor
Esta herramienta está destinada únicamente al aprendizaje y a pruebas de seguridad autorizadas. Todas las consecuencias derivadas del uso de esta herramienta serán responsabilidad del usuario; el desarrollador no asume ninguna responsabilidad.
¡Respete la ley de seguridad de redes y las leyes y regulaciones aplicables, y sea un investigador de seguridad ético!
¡Le deseamos éxito en sus pruebas! 🎉