Server-Side Request Forgery (SSRF)

Server-Side Request Forgery (SSRF)

Lassen Sie den Server das abrufen, was Sie selbst nicht erreichen können.

Was ist Server-Side Request Forgery (SSRF)?

Die Anwendung ruft eine vom Nutzer angegebene URL ab, ohne das Ziel zu prüfen. Die Anfrage kommt aus Ihrem eigenen Netzwerk; der Angreifer nutzt damit die Netzwerkposition des Servers. Sie richten eine Link-Vorschaufunktion auf den Cloud-Metadaten-Dienst unter seiner festen Link-Local-Adresse, lesen die Zugangsdaten der zugewiesenen Instanzrolle aus und listen damit einen Speicher voller Kundenrechnungen auf. Anschließend lösen Sie den Host auf, lehnen private, Loopback- und Link-Local-Adressen ab und prüfen das Ziel nach jeder Weiterleitung erneut. Token-pflichtige Metadaten (IMDSv2) und auf minimale Rechte beschränkte Rollen ergänzen den Schutz.

Was Sie lernen in Server-Side Request Forgery (SSRF)

Server-Side Request Forgery (SSRF) — Trainingsschritte

  1. Die Vorschaufunktion

    Bei Corveil kann jeder einen Link einfügen und eine übersichtliche Vorschaukarte mit Seitentitel und Bild erhalten, die sich in eine Nachricht übernehmen lässt. Die Vorschau entsteht nicht im Browser: Corveils Server rufen den Link selbst ab. Bob öffnet die Funktion, um ihr Verhalten zu prüfen.

  2. Woher die Anfrage stammt

    Ein Detail auf dieser Seite erklärt, warum Bob sich für die Funktion interessiert.

  3. Die Funktion verwenden

    Beobachten Sie die Funktion im Normalbetrieb. Fügen Sie einen gewöhnlichen Nachrichtenartikel ein und erzeugen Sie eine Vorschau, damit die Seite eine echte Anfrage stellt, die Bob prüfen kann.

  4. Den Endpunkt finden

    Die Anfrage wurde gesendet und der Browser hat sie aufgezeichnet. Öffnen Sie den Netzwerkbereich und prüfen Sie, wohin die Seite sie tatsächlich gesendet hat.

  5. Nach innen richten

    Bob stellt die Anfrage im API-Tester nach, damit er den Parameter url auf ein beliebiges Ziel setzen kann. Der Server ruft jede von ihm angegebene Adresse ab – auch solche, die Bob selbst nie erreichen könnte. Jeder Cloud-Server hat unter einer festen internen Adresse einen Metadaten-Dienst, der die Zugangsdaten seiner zugewiesenen Rolle ausgibt. Er ist für die Nutzung durch den Server selbst vorgesehen. Bei AWS beantwortet er, solange das ältere IMDSv1 ohne Token noch erlaubt ist, wie es bei Corveils Worker der Fall ist, eine einfache GET-Anfrage, ohne zu prüfen, wer fragt. Bob muss Corveils Vorschau-Worker nur dazu bringen, den Dienst für ihn aufzurufen.

  6. Den Metadaten-Service erreichen

    Stellen Sie die Vorschauanfrage im API-Tester nach, richten Sie url aber statt auf einen Nachrichtenartikel auf den Pfad für Metadaten-Zugangsdaten. Corveils Worker ruft ihn aus dem Netzwerk heraus ab und gibt die Antwort zurück.

  7. Zugangsdaten erbeutet

    Die Antwort ist keine Vorschau, sondern ein Satz aktiver Zugangsdaten für die Cloud-Rolle des Vorschau-Workers.

  8. Eine Anfrage mit dem gestohlenen Schlüssel signieren

    Corveils interner Speicher vertraut signierten Anfragen. Bob signiert eine mit der AccessKeyId , die er gerade vom Metadaten-Dienst erhalten hat, und listet den Bucket mit Kundenrechnungen auf – ein Ziel, das ein externer Nutzer normalerweise nicht erreichen kann.

  9. Die Daten sind abgeflossen

    Namen, Beträge und Rechnungs-IDs aus über vierzigtausend Kundendatensätzen — abgerufen über eine Funktion, die nur einen Link vorschauen sollte.

  10. Wissenscheck

Abdeckung der Sicherheits-Frameworks

OWASP Top 10

  • A01:2025 Broken Access Control
  • A10:2021 Server-Side Request Forgery (SSRF)

CWE

  • CWE-918 Server-Side Request Forgery (SSRF)

CIS Controls

  • CIS 16 Application Software Security

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security