Der unsicherste Online-Shop der Welt OWASP Juice Shop lädt zum Hacken ein
„Was für ein Saftladen“, möchte man sich denken: Der OWASP Juice Shop ist eine Plattform mit Sicherheitslücken – jeder Menge davon. Als Entwickler oder IT-Security-Experte sollte man ihn definitiv installieren.

Das Open Web Application Security Project (https://owasp.org/ OWASP) bietet ein ziemlich umfassendes Angebot an Informationen und Tools rund um die Sicherheit von Webangeboten. Eines der spannendsten Projekte ist sicherlich der OWASP Juice Shop, der Webentwicklern und Security-Spezialisten eine völlig neue Perspektive vermitteln möchte – nämlich die eines Angreifers.
Beim Juice Shop ist der Name zunächst einmal Programm: Es handelt sich um einen Online-Shop mit diversen Säften im Angebot. Freilich ist der Online-Marktplatz freie Software, so dass man einen Klon der Webanwendung selbst betreiben kann.
Das Besondere am Shop: Er beinhaltet Dutzende Sicherheitslücken, 95 Aufgaben rund um deren Ausnutzung und dient allein dazu, gehackt zu werden. Sie schlüpfen also in die Rolle eines Crackers und versuchen in die Administration zu gelangen, Passwort-Hashes zu erbeuten und zu dekodieren, an Nutzerinhalte zu gelangen, Konten zu übernehmen oder per Injection-Attacke Unheil zu stiften.
Wie nützlich solch ein Perspektivwechsel ist, kann wohl jeder nachvollziehen, der schon mal eine Brute-Force- oder Wörterbuchattacke auf ein simples Test-Passwort ausgeführt hat. Tools wie John the Ripper probieren etwa für eine verschlüsselte ZIP-Datei alle möglichen Zeichenkombinationen beziehungsweise Einträge einer Wortliste als Passwort durch – und Passwörter wie „123456“, „passwort“ oder „schatzi1“ halten dann in der Regel keine Minute durch. Einmal praktisch miterlebt, wird vermutlich jeder anschließend vernünftige Passwörter nutzen, zumindest für Wichtiges.
Beim Juice Shop bleibt es aber nicht bei reinen Aha-Erlebnissen. Durch die Vielzahl an realen Challenges und Sicherheitslücken lassen sich ebenso viele ganz praktische Lektionen für die eigene Entwicklungsarbeit lernen. Wer sieht, wie einfach das Passwort „test“ geknackt werden kann, wird es nie wieder als Passwort einsetzen – und wer nachvollziehen kann, wie simpel sich etwa vermeintlich versteckte Bereiche einer Webanwendung auffinden lassen, wird sie künftig nicht mehr schlicht über das Weglassen von Verlinkungen „verstecken“.
Dieses Finden versteckter Bereiche ist auch gleich die erste Challenge des Juice Shops und zeigt eine weitere Besonderheit: Das Stichwort hier ist Gameification. Es handelt sich beim Saftladen nicht nur um einen mit Lücken perforierten Shop, sondern auch um eine spielerische Lernsoftware. Im Shop selbst finden Sie alle zu bewältigen Aufgaben, Hinweise zu Lösungen und teils auch ganze Tutorials.
Der Fortschritt wird dabei hübsch aufbereitet mit Punkten und Sternchen dokumentiert – auf einem Scoreboard. Nun ist dieses Scoreboard in der Oberfläche nicht verlinkt und das Finden der URL die erste Challenge nach dem Juice-Shop-Start. Als einsteigerfreundliches, spielerisches Werkzeug hilft dabei ein kleiner Assistent, der den Hinweis gibt, im JavaScript – Grundlage des Shops – nach einer URL zu suchen.
Ganz generell lässt Juice Shop einen selten im Regen stehen. Neben den Hinweisen im Programm selbst gibt es im Appendix der Dokumentation präzise Lösungswege für die einzelnen Aufgaben. Und natürlich gibt es auch Hinweise zu den Sicherheitslücken, im Zweifelsfall schlicht als Links auf die jeweiligen CVEs. Damit ist Juice Shop sicherlich eine der besten Möglichkeiten, um die Brücke von Hacking-Theorie zur Hacking-Praxis zu schlagen: Sicher, legal, angeleitet, spielerisch, praxisrelevant und definitiv auch schlicht spaßig.
Juice Shop einrichten
Vielleicht kennen Sie es von IT-Security-Software, Hacking-Projekten und sonstigen Anwendungen für die Zielgruppe Entwickler, Hacker, Admins & Co.: Schon der Beginn ist meist schwierig, das Aufsetzen von Abhängigkeiten und Tools verschlingt schnell Stunden. Juice Shop macht es hier denkbar einfach und bietet eine ganze Handvoll Methoden an, die Software zu betreiben.
Am einfachsten ist dabei die empfohlene Standardvariante: Juice Shop lässt sich direkt aus dem zugehörigen GitHub-Repository auf der Cloud-Plattform Heroku als eigene Instanz betreiben. Heroku ist eine Platform as a Service (PaaS), über die Sie Anwendungen entwickeln und bereitstellen können, für nicht kommerzielle Zwecke auch im Rahmen eines kostenlosen Kontos.
Die ganze Einrichtung beschränkt sich tatsächlich auf die Anmeldung bei Heroku und einen Klick auf den Deploy-to-Heroku-Link im Juice-Shop-Repo oder bei Bedarf natürlich auch in einem auf GitHub geforkten Repo. Alternativ können Sie Juice Shop über node.js und dessen Paketmanager installieren, als Docker-Container, Vagrant + VirtualBox, Amazon EC2, Azure und Google Compute Engine.
Ein Einstieg in Juice Shop
Für den Einstieg sollte man den vorgesehenen Weg gehen und die oben bereits erwähnte Challenge lösen: Das Scoreboard finden, das überhaupt erst weitere Infos und Aufgaben bietet. Der Weg dorthin ist ziemlich simpel: Man ruft die Entwicklerwerkzeuge des Browsers mit F12 auf, öffnet im Sources-Tab die Datei „main-es2015.js“ und sucht schlicht nach „score“ oder „board“ – in einer Auflistung aller Bereiche des Shops bringt der Eintrag „path: „score-board“„ die Lösung, die sich dann hier zum Beispiel in der URL „https://juiceshop-ml.herokuapp.com/#/score-board“ widerspiegelt.
Sobald diese erste simple Challenge gelöst ist, verabschiedet sich der Assistent erstmal und Sie können ganz wie bei Open-World-Spielen ganz nach Belieben beginnen. Juice Shop selbst empfiehlt den Einstieg über einen „Happy Path“, also die normale, vorgesehene Nutzung des Shops als normaler Shop-Besucher – um zu verstehen, wie die Anwendung überhaupt grundsätzlich funktioniert. Tipp: Dabei sollten Sie die JavaScript-Konsole in den Entwicklerwerkzeugen im Auge behalten.
Um mal einen interessanten, einfachen und naheliegenden Beispieleinstieg zu zeigen: Sie möchten ins Backend, in den Adminbereich. Hier wird es minimal komplexer als beim Scoreboard, zeigt aber gut, wie sich auch alle anderen Challenges – mit Hilfestellung – lösen lassen. Zunächst benötigen Sie auch hier wieder eine URL, da der Adminbereich ebenfalls nicht verlinkt ist. Die Quelleneinsicht spuckt hier ganz schnell „administration“ aus.
Natürlich ist der Adminbereich passwortgeschützt. Nun gibt es allerlei Wege, um dennoch Zugriff zu erlangen. Eine Variante läuft über SQL-Injection und Passwort-Hashes. Die Shop-eigene Suche in der Oberfläche ist – natürlich – nicht für derlei Anliegen zu gebrauchen. Aber es gibt einen einen Endpoint für die Suche in der Form „https://juiceshop-ml.herokuapp.com/rest/products/search?q= irgendwas“. Statt „irgendwas“ lässt sich hier nun ein '; unterbringen – was eine Fehlermeldung hervorbringt, die nahelegt, dass SQL-Injection möglich ist.
Und die sieht dann zum Beispiel so aus:
qwert')) UNION SELECT id, email, password, '4', '5', '6', '7', '8', '9' FROM Users—
Diese simple SQL-Abfrage bringt die Nutzernamen samt Passwort-Hashes hervor. Und der Hash des Admins, „0192023a7bbd73250516f069df18b500“, lässt sich dann ganz fix auf einer Seite wie CrackStation dekodieren. Und schon können Sie sich als Admin mit dem Passwort „admin123“ anmelden.
Wie genau sich der SQL-String ergibt, geht freilich auch aus der Doku hervor – letztlich lassen sich alle Schritte über die Doku, den Appendix, die verlinkten CVEs oder mehr oder weniger ausschweifende Google-Suchen meistern. Der Lerneffekt tritt auch ein, wenn Sie nur über vorgegebenen Lösungswege hacken, ohne selbst kreativ zu werden – spaßiger ist aber freilich, sich einen eigenen Weg in die Shop-Interna zu suchen.
Bei allem Spaß ist Juice Shop aber mehr als nur eine Spielerei und sei vielmehr jedem Entwickler, Admin und angehendem Hacker ans Herz gelegt, um ganz essenzielle Lektionen bezüglich IT-Security zu lernen. Und natürlich: Juice Shop ist Open Source – Sie können das Projekt also auch für eigene Zwecke anpassen, beispielsweise um Schulungen zu geben oder neue Mitarbeiter im Security-Bereich anzulernen. Oder vielleicht auch, um Ihre eigenen Sicherheitsprodukte als Gegenmaßnahme zu präsentieren.
(ID:46901074)