Module

M05: Broken Access Control

Hier prüft ihr IDs, Rollen und direkte Objektzugriffe in Requests und Responses. Dazu gehört SSRF: der Server holt eine Ressource, deren Ziel der Client vorgibt.

  1. Aufgabe 01

    Zugriff auf die Administrationsseite des Stores

    Auf den Administrationsbereich des Shops zugreifen.

    Es ist nur etwas schwerer zu finden als das Score Board. Raten, welche URL der Admin-Bereich hat, kann reichen.

    Alternativ im Quelltext nach einer Referenz suchen – in den Teilen, die der Browser normalerweise nicht zeigt.

    Es gibt eine Zugriffskontrolle, aber mindestens drei Wege, sie zu umgehen.

  2. Aufgabe 02

    5-Sterne-Feedback löschen

    Sämtliches 5-Sterne-Kundenfeedback löschen.

    Ist der Admin-Bereich gefunden, ist das Löschen einfach.

    Passiert beim Löschen nichts? In die JavaScript-Konsole schauen.

  3. Aufgabe 03

    Zugriff auf einen anderen Warenkorb

    Auf den Warenkorb eines anderen Benutzers zugreifen. Ein Angreifer sähe das Kaufverhalten – und könnte Mengen oder Artikel ändern, in der Hoffnung, dass das beim Checkout niemandem auffällt.

    Alle Warenkorb-Funktionen durchprobieren und den HTTP-Traffic im Blick behalten.

    Es kann eine clientseitige Verknüpfung von Benutzer zu Warenkorb geben, die sich manipulieren lässt.

    SQL Injection zählt auf dem Score Board hier nicht. Einen anderen Weg suchen.

  4. Aufgabe 04

    Feedback im Namen eines anderen Nutzers geben

    Im Juice Shop lässt sich Feedback mit Sternen und Kommentar hinterlassen. Angemeldet hängt es am aktuellen Konto, unangemeldet ist es anonym. Feedback im Namen einer anderen Person abgeben.

    Lösbar über die Oberfläche oder durch Abfangen der Kommunikation mit dem REST-Backend.

    Für den clientseitigen Einstieg das HTML-Formular der Feedback-Übermittlung analysieren.

  5. Aufgabe 05

    Produkt in einen anderen Warenkorb legen

    Ein zusätzliches Produkt in den Warenkorb eines anderen Benutzers legen. Ein zweites Exemplar desselben Produkts zählt nicht – Stehlen aus dem fremden Warenkorb auch nicht.

    Den HTTP-Traffic anschauen, während Produkte in den eigenen Warenkorb gelegt werden.

    Hier ist etwas mehr Tampering nötig als bei den anderen Warenkorb-Aufgaben.

  6. Aufgabe 06

    Als Nutzer mit Admin-Rechten registrieren

    Ein eigenes Konto anlegen, das direkt Administrator-Rechte hat.

    Es geht darum, etwas zuzuweisen, was nicht zuweisbar sein sollte.

    Erst als normaler Nutzer registrieren und mitlesen, welche API-Endpunkte dabei beteiligt sind.

    An die einfachste denkbare Umsetzung einer Unterscheidung zwischen Nutzer und Administrator denken.

    Der Server übernimmt ein Feld aus dem Request, das er nie vom Client hätte annehmen dürfen (Mass Assignment).

  7. Aufgabe 07

    Versteckte Ressource über den Server anfordern

    Eine versteckte Ressource auf dem Server über den Server selbst anfordern (SSRF).

    Etwas Schlechtes reverse-engineeren kann Gutes bewirken: die Übungs-Malware aus M01, Aufgabe 8 ist der Ausgangspunkt.

    Was in der Malware steckt, direkt zu verwenden, bringt nichts.

    Als SSRF zählt das erst, wenn der Juice-Shop-Server sich selbst angreift.

    Den Quelltext der Malware nicht auf GitHub suchen. Klassisches Reverse Engineering reicht.

    Sechs Sterne und Reverse Engineering – eher Take-home oder Trainer-Demo.