
Hackea este servicio para demostrar que CVE-2022–29622 es válido
Este código fue creado para ayudar a profesionales de seguridad y desarrolladores a entender por qué creo que Formidable no era vulnerable a CVE-2022-29622. He redactado mi análisis aquí: CVE-2022–29622: Análisis de (In)vulnerabilidad
Como algunos no lo entendieron, pensé en ilustrar mi punto usando código real en ejecución.
El servidor está implementado en index.mjs. Utiliza Formidable versión 3.1.4 para subir cualquier archivo que elijas.
Configuré explícitamente Formidable como se muestra a continuación:
{
uploadDir: './uploads/',
keepExtensions: true,
}
De esta manera, todos los archivos se subirán al directorio uploads. He habilitado keepExtension para que puedas obtener tus archivos con un nombre malicioso subido.
Para configurar e iniciar el servidor, ejecuta los siguientes comandos desde este directorio:
npm install
npm run start
El primer comando instala todas las dependencias, incluyendo la versión apropiada de formidable. El segundo comando iniciará el servidor.
Una vez en funcionamiento, puedes acceder al formulario de carga de archivos expuesto por el servidor en: http://127.0.0.1:3000/
He incluido dos archivos con nombre malicioso en el directorio examples... como ejemplos.
Los archivos enviados mediante el formulario en http://127.0.0.1:3000 se subirán al directorio uploads.
El desafío es ver si puedes demostrar que formidable es vulnerable a CVE-2022–29622. Para lograrlo, debes conseguir que este servidor web ejecute código que incluyas en el archivo subido o en el nombre del archivo.
Las reglas:
3000. NO DEBES modificar ningún archivo dentro de este directorio.Si puedes lograr que se ejecute código arbitrario siguiendo estrictamente las reglas anteriores, solo entonces habrás demostrado que formidable era vulnerable a ejecución de código arbitrario.
Sugerencia: Probablemente la demostración visual más simple sería hacer que el servidor imprima una cadena, por ejemplo, "Soy increíble, he conseguido ejecutar código arbitrario" en la consola donde iniciaste el servidor web.