Serverseitige Anforderungsfälschung

Serverseitige Anforderungsfälschung

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

Was ist Serverseitige Anforderungsfälschung?

Die Anwendung ruft eine vom Benutzer angegebene URL ab, und niemand überprüft, wohin sie verweist. Diese Anfrage kommt von Ihrem eigenen Netzwerk, sodass der Angreifer die Position des Servers erbt. Sie richten eine Link-Vorschaufunktion auf den Cloud-Metadatendienst an seiner festen Link-Local-Adresse, lesen die Anmeldeinformationen der angehängten Rolle der Instanz zurück und listen damit einen Shop voller Kundenrechnungen auf. Dann lösen Sie den Host auf und lehnen private, Loopback- und Link-Local-Bereiche ab, überprüfen sie nach Umleitungen erneut, mit tokenerforderlichen Metadaten (IMDSv2) und Rollen mit den geringsten Rechten darunter.

Was Sie lernen in Serverseitige Anforderungsfälschung

Serverseitige Anforderungsfälschung — Trainingsschritte

  1. Die Vorschaufunktion

    Corveil erlaubt jedem, einen Link einzufügen und eine übersichtliche Vorschaukarte mit Seitentitel und Bild zurückzuerhalten, bereit zum Einfügen in eine Nachricht. Die Vorschau wird nicht im Browser erstellt: Corveils eigene Server rufen den Link ab. Bob öffnet die Funktion, um zu sehen, wie sie funktioniert, bevor er sie selbst ausprobiert.

  2. Woher die Anfrage stammt

    Ein Detail auf dieser Seite ist der ganze Grund für Bobs Interesse.

  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 erstellt diese Anfrage im API Tester neu, damit er url auf jedes beliebige Ziel richten kann. Der Server ruft jede von ihm angegebene Adresse ab — auch Ziele, die Bob selbst niemals erreichen könnte. Jeder Cloud-Server hat an einer festen internen Adresse einen Metadaten-Service, der die Zugangsdaten der diesem Server zugeordneten Rolle ausgibt. Er ist für die Nutzung durch den Server selbst vorgesehen und prüft nie, wer anfragt. Bob muss nur Corveils Preview-Worker dazu bringen, ihn für ihn zu erreichen.

  6. Den Metadaten-Service erreichen

    Erstellen Sie die Vorschauanfrage im API Tester neu, richten Sie url aber statt auf einen Nachrichtenartikel auf den Pfad für Metadaten-Zugangsdaten. Corveils Worker ruft ihn innerhalb des Netzwerks ab und gibt zurück, was er erhält.

  7. Zugangsdaten erbeutet

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

  8. Eine Anfrage mit dem gestohlenen Schlüssel signieren

    Corveils interner Speicher vertraut einer signierten Anfrage. Bob signiert eine mit der AccessKeyId , die er gerade aus dem Metadaten-Service abgerufen hat, und listet den Bucket mit Kundenrechnungen auf — ein Ziel, das kein externer Nutzer normalerweise 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

    Sie haben gerade beobachtet, wie eine Link-Vorschaufunktion die Zugangsdaten und dann die Daten des Servers offenlegte. Prägen Sie sich ein, warum das möglich war.

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