Module

M09: Nutzung von Komponenten mit bekannten Schwachstellen

Bei einigen Aufgaben muss der Name der gefundenen Bibliothek – bzw. die Lösung – über das Kontaktformular an den Shop. Erst dann wertet der Juice Shop die Aufgabe als gelöst.

Nützliche Werkzeuge, um npm-Pakete auf bekannte Lücken zu prüfen:

AuditJS sowie npm ab Version 6 (npm audit)

  1. Aufgabe 01

    Typosquatting Teil 1

    Informieren Sie den Juice Shop über eine Typosquatting-Attacke, der er zum Opfer gefallen ist.

    Hinweise
    • Untersuchen Sie die im FTP-Ordner vergessene Backup-Datei – darin stehen die verwendeten Bibliotheken.
    • Senden Sie über das Kontaktformular Feedback mit dem Namen der auffälligen Bibliothek.
  2. Aufgabe 02

    Veraltete Bibliothek finden

    Senden Sie über das Kontaktformular Feedback und nennen Sie die anfällige Bibliothek inklusive genauer Version.

    Hinweise
    • Suchen Sie in der zuvor heruntergeladenen package.json.bak nach sicherheitsrelevanten Abhängigkeiten.
    • Recherchieren Sie im Netz zu den Bibliotheken aus der Backup-Datei.
  3. Aufgabe 03

    Unsigniertes JWT erstellen

    Erstellen Sie ein gültiges JWT für ein Konto, das in der Datenbank nicht existiert – die Anwendung soll es trotzdem als legitim akzeptieren.

    Hinweise
    • Holen Sie sich zuerst ein gültiges JWT aus dem Authorization-Header eines eingeloggten Requests.
    • JWTs gibt es nur für angemeldete Konten, und sie laufen ab – also nicht trödeln.
    • https://www.jwt.io/ hat einen praktischen Debugger, der bei dieser Aufgabe oft den Unterschied macht.
    • Bringen Sie die Anwendung dazu, ein Token mit dem nötigen Payload als gültig zu akzeptieren.
  4. Aufgabe 04

    Typosquatting Teil 2

    Finden Sie einen weiteren Typosquatting-Fall, der im Juice Shop versteckt ist.

    Hinweise
    • Auch diese Aufgabe hat nichts mit URLs oder Domains zu tun.
    • Die Bibliothek nutzt einen realistischen Tippfehler im Paketnamen.
  5. Aufgabe 05

    Legal-Information-Datei überschreiben

    Überschreiben Sie die Datei mit den rechtlichen Hinweisen über einen unsicheren Upload.

    Hinweise
    • Finden Sie alle Stellen, an denen Datei-Uploads möglich sind.
    • Mindestens eine Stelle stützt sich auf eine Bibliothek mit beliebigem Datei-Overwrite.
    • Einen Hinweis auf die zugrunde liegende Lücke finden Sie in der Twitter-Timeline von @owasp_juiceshop.
  6. Aufgabe 06

    RSA-signiertes JWT erstellen und sich als rsa_lord@juice-sh.op ausgeben

    Erstellen Sie ein gültiges JWT für ein Konto, das nicht existiert.

    Zusätzlich soll das Token so aussehen, als wäre es ordnungsgemäß mit RSA signiert.

    Hinweise
    • Statt zu erzwingen, dass gar nicht signiert wird, brauchen Sie einen aufwändigeren Angriff gegen die JWT-Bibliotheken im Juice Shop.
    • Der öffentliche RSA-Schlüssel, den die Anwendung für JWTs nutzt, ist für diese Aufgabe zwingend.
    • Den passenden privaten Schlüssel zu finden sollte eigentlich unmöglich sein – unlösbar ist die Aufgabe trotzdem nicht.