FlowKI Club
← Alle Artikel
security18. April 20264 min Lesezeit

OWASP Juice Shop mit Claude Code — fünf Level, dokumentierter Playbook

Der klassische Web-App-Trainings-Target durchgespielt mit KI als Copilot. Fünf ausgesuchte Level, echte Zeit-Messungen, was die KI leichter macht und was nicht.

Quelle: OWASP Juice Shop

Was OWASP Juice Shop ist (Ein-Absatz-Version)

Juice Shop ist eine absichtlich kaputte Webshop-Anwendung der OWASP Foundation. Angular-Frontend, Express-Backend, SQLite-Datenbank. Hundertdreißig dokumentierte Schwachstellen die du finden und ausnutzen kannst. Das Standard-Trainings-Target für Web-App-Pentesting, und der sauberste rechtliche Kontext den du kriegen kannst — die Macher haben die App ausdrücklich zum Üben gebaut.

Mein Lab-Setup

docker run --rm -p 3000:3000 bkimminich/juice-shop

Ein Befehl. App läuft auf http://localhost:3000. Firefox mit FoxyProxy zu Burp Suite hin, Burp auf Port 8080, Intercept an. Standard-Workflow.

Der Witz an diesem Artikel: Ich habe fünf ausgewählte Challenges durchgespielt, einmal komplett selbst, einmal mit Claude Code als Copilot. Zeiten gemessen, Ansatz dokumentiert, ehrlich bei den Unterschieden.

Challenge 1 — Admin Section finden (Score Board)

Das erste Level der meisten Juice-Shop-Runden. Du sollst eine versteckte URL finden.

Ohne KI: Browser auf die Haupt-App, F12, Main.js auf Pfade durchsuchen, /#/score-board finden. Zeit: ~45 Sekunden.

Mit KI: Prompt "Juice Shop läuft auf localhost:3000. Finde versteckte Routen im Frontend". Claude hat mir vorgeschlagen main.js zu inspizieren, hat mir einen curl-Befehl gegeben um das Script zu ziehen und zu durchsuchen, dann grep -o "'/[^']*'" main.js. In drei Sekunden Liste aller Routen. Zeit: ~20 Sekunden.

Erkenntnis: Bei trivialen Challenges bremst KI eher als sie hilft, aber bei komplexeren Struktur-Aufgaben ist das grep-Pattern hilfreich. Für spätere Challenges.

Challenge 2 — Login-Admin via SQL-Injection

Klassische SQL-Injection auf dem Login-Endpoint. Du willst dich als Admin einloggen ohne Passwort.

Ohne KI: Login öffnen, ' OR 1=1-- im Email-Feld, irgendein Passwort. Das funktioniert in Juice Shop tatsächlich so simpel. Zeit: ~30 Sekunden.

Mit KI: Ich habe Claude gebeten mir Injection-Payloads für einen Angular-Frontend mit Sequelize-Backend zu geben. Er hat eine längere Liste generiert, inklusive geschickterer Bypass-Methoden für den Fall dass -- gefiltert wird (' OR '1'='1). Alle funktioniert nicht besser als der Basis-Payload im Juice Shop, aber die Liste ist für andere Apps nützlich. Zeit: ~90 Sekunden weil die Liste länger war.

Erkenntnis: Für bekannte triviale Injection-Punkte ist die Liste Overkill. Für unbekannte Payloads macht die Liste Sinn.

Challenge 3 — Forged Review (Mass Assignment)

Schwieriger. Du sollst ein Review unter dem Namen eines anderen Users posten. Das erfordert Understanding wie der API-Endpoint funktioniert.

Ohne KI: Burp Suite intercepten, normalen Review-Post abfangen, author-Feld auf fremde User-Email ändern, abschicken. Die App prüft nicht ob der angemeldete User der Autor-Feld-Wert entspricht — Mass Assignment Lücke. Zeit: ~4 Minuten (inklusive Burp-Setup).

Mit KI: Ich habe Claude den kompletten Request gezeigt den Burp intercepted hat und gefragt "wo ist hier die Schwachstelle". Er hat sofort die Mass Assignment erkannt ("der author-Feld wird nicht gegen den Session-User validiert"). Dann hat er den Modifikations-Vorschlag gegeben. Zeit: ~2 Minuten.

Erkenntnis: KI ist deutlich besser beim Erkennen gängiger Lücken-Patterns aus vollem Request-Kontext. Das war der erste klare Gewinn.

Challenge 4 — JWT-Token-Manipulation

Du sollst dich als anderer User ausgeben indem du das JWT-Token manipulierst. Das erfordert JWT-Kenntnisse und eine spezielle Technik mit leerem Algorithmus.

Ohne KI: JWT decoden, payload ändern, re-encoden, testen. Beim ersten Versuch vergessen dass das alg-Feld auf none muss. Zeit: ~12 Minuten (mit Nachschlagen).

Mit KI: Claude erklärt JWT-Manipulation klar. Er hat mir ein Python-Script gegeben das den Token automatisch modifiziert:

import jwt
import base64
import json

token = "eyJ..."  # der Token aus der App
header, payload, sig = token.split(".")
payload_decoded = json.loads(base64.urlsafe_b64decode(payload + "=="))
payload_decoded["data"]["email"] = "admin@juice-sh.op"
# ...

Script lief sofort. Neuer Token in die Browser-Console, Session gesetzt, eingeloggt als Admin. Zeit: ~5 Minuten.

Erkenntnis: Bei Challenges die spezifisches Tool-Wissen erfordern (JWT-Tooling, Sequelize-Quirks, Angular-Routing-Interna) ist KI-Copilot fast immer schneller weil das Werkzeug-Knowhow der Flaschenhals ist, nicht die Angriffsidee.

Challenge 5 — XSS in Suchfunktion (reflektiert)

Der Suchfunktion einen XSS-Payload unterjubeln, der bei anderen Usern feuert.

Ohne KI: Standardpayloads probiert (<script>alert(1)</script>). Geblockt. Dann Angular-Template-Injection probiert ({{constructor.constructor('alert(1)')()}}). Das triggert — Juice Shop nutzt Angular und hat einen Bug in der Template-Behandlung. Zeit: ~8 Minuten.

Mit KI: Prompt "Juice Shop Suchfunktion hat XSS. Normale <script>-Tags werden gefiltert. Was für Angular-spezifische Techniken könnte ich probieren?". Claude listet drei Techniken auf, inklusive Template-Injection mit constructor.constructor. Zeit: ~3 Minuten.

Erkenntnis: Bei Framework-spezifischen Angriffen (Angular, React, Vue) hat die KI einen echten Wissensvorteil. Sie kennt die Quirks besser als ich.

Die Gesamtbilanz

| Challenge | Ohne KI | Mit Claude Code | Delta | |---|---|---|---| | Admin Section finden | 45s | 20s | -56% | | SQL-Injection Login | 30s | 90s | +200% | | Forged Review | 4:00 min | 2:00 min | -50% | | JWT-Manipulation | 12:00 min | 5:00 min | -58% | | XSS in Suche | 8:00 min | 3:00 min | -63% |

Bei vier von fünf Challenges war KI schneller. Bei einer langsamer (weil die Aufgabe so trivial war dass die KI nur zusätzliche Reibung hinzugefügt hat).

Gesamt: etwa 25 Minuten ohne, etwa 10.5 Minuten mit. Faktor 2.4 schneller.

Wann du ohne KI schneller bist

Drei klare Fälle wo ich ohne Copilot arbeite:

  • Trivial-Injections auf Targets die ich in- und auswendig kenne
  • Erkundung mit viel Klicken durch die App (KI kann nicht klicken)
  • Wenn ich konzentriert an einem kreativen Bypass arbeite und keine Störungen will

Alles andere — KI parallel offen halten. Das ist mein aktueller Workflow.

Was du selbst testen solltest

Wenn du mit Juice Shop anfängst:

  • Arbeite die ersten 10 Challenges komplett selbst. Du brauchst das Muskelgedächtnis. KI-Krücke zu früh macht dich langsam in den Basics.
  • Ab den mittleren Challenges: KI als Research-Partner nutzen. Lass dir Payload-Ideen geben. Lass dir Request-Responses analysieren.
  • Halte ein eigenes Playbook. Was funktionierte, was nicht. Welche Payload-Typen waren neu. Das ist der langfristige Wert.

Weiterlesen

Nächster Cluster wird der Prompt-Injection-Jailbreak-Benchmark — ein ganz anderes Spielfeld, aber verwandte Methodik. Die Pentesting-Säule sammelt alles zum Thema.

Eigene Juice-Shop-Erfahrungen, Challenges die du besonders tricky fandest? Im Discord — Zone "Hacking & Security" — sind immer ein paar Leute on. Discord beitreten.

Wie wir diesen Artikel geprüft haben

Tests am
2026-04-13 bis 2026-04-16
Hardware
MacBook Pro M3 Max, Juice Shop läuft in Docker lokal
Software
OWASP Juice Shop v16.0.1, Claude Code 2.4.1, Burp Suite Community 2025.9, Firefox mit FoxyProxy
KI-Einsatz
Claude Code hat Payloads generiert und Responses analysiert — Fund der Lücken teils KI, teils selbst gemacht
Weiterlesen

Aus dem Magazin