Unsichere URL-Weiterleitung

Unsichere URL-Weiterleitung

Echte Domain, echte Anmeldung, dann eine HTTP-302-Weiterleitung zum Angreifer.

Was ist Unsichere URL-Weiterleitung?

Eine offene Weiterleitung schickt den Browser an ein Ziel aus der Anfrage, ohne zu prüfen, ob es zur Anwendung gehört. Der Anwendung bringt dieser Fehler nichts; der Angreifer nutzt dabei Ihren echten Hostnamen genau dann, wenn Nutzer ihm besonders vertrauen. Sie wiederholen eine Anmeldung mit dem Parameter next und sehen, wie eine HTTP-302-Weiterleitung das Opfer zu einer täuschend ähnlichen Anmeldeseite führt. Danach sichern Sie res.redirect(req.query.next) durch eine Prüfung auf relative Pfade oder eine Allowlist für Hostnamen ab. Dabei sehen Sie, warum startsWith('/') eine protokollrelative URL wie //host durchlässt.

Was Sie lernen in Unsichere URL-Weiterleitung

Unsichere URL-Weiterleitung — Trainingsschritte

  1. Das Ziel auskundschaften

    Heute hat Bob es auf Fernloft-Konten abgesehen. Der persönliche Cloud-Dienst speichert in einem Konto das ganze Leben einer Person: Fotos, Steuerunterlagen, Ausweisscans und Backups. Er kennt kein Passwort und will deshalb untersuchen, wie die Anmeldung von innen funktioniert. Bei Fernloft kann sich jeder registrieren, daher beginnt er auf der Registrierungsseite.

  2. Ein Wegwerfkonto erstellen

    Zunächst braucht er zum Testen ein eigenes Konto, das nicht zu ihm zurückführt. Er gibt eine Wegwerf-E-Mail-Adresse und ein Passwort ein und erstellt es.

  3. Die Anmeldeadresse prüfen

    Nach der Kontoerstellung landet Bob auf der Anmeldeseite. Vor der Anmeldung prüft er die Adressleiste. Der Anmeldelink enthält den Wert redirect_to , derzeit /home , der bestimmt, wohin die Anwendung den Browser nach erfolgreicher Anmeldung sendet.

  4. Anmelden und die Weiterleitung beobachten

    Nun meldet sich Bob mit seinem Wegwerfkonto an und beobachtet, wohin die Anwendung den Browser nach Annahme des Passworts sendet.

  5. Den bösartigen Link erstellen

    Bob erstellt denselben Anmeldelink, ändert aber den Wert redirect_to , damit er statt auf /home auf eine von ihm kontrollierte Seite verweist. Er ändert in der Adressleiste nur diesen Wert, um zu sehen, ob die Anwendung einem externen Ziel ebenso folgt wie /home .

  6. Offene Weiterleitung bestätigt

    Bob meldet sich mit seinem Wegwerfkonto auf der echten Fernloft-Seite an. Die Zugangsdaten sind echt, daher gelingt die Anmeldung. Danach liest die Anwendung seinen manipulierten Wert redirect_to , um zu bestimmen, wohin sie den Browser sendet.

  7. Den Link präparieren

    Bob verpackt den präparierten Anmeldelink in eine Nachricht, auf die viele reagieren würden: eine Warnung vor einer abgelaufenen Sitzung. Er beschafft sich Fernloft-Adressen aus einem Datenleck und verschickt allen denselben Link. Wir folgen einer Empfängerin: Alice.

  8. Eine Warnung zu Ihrem Konto

    Nach Feierabend prüft Alice ihr privates Postfach. Dort liegt eine Nachricht von Fernloft: ihre Sitzung sei abgelaufen und sie müsse ihre Identität bestätigen, um ihre Dateien zu behalten. Sie nutzt Fernloft für alles; den Zugriff zu verlieren, wäre ein echtes Problem.

  9. Auf den Link klicken

    Der Link verweist auf account.fernloft.com, die echte Adresse von Fernloft. Deshalb klickt Alice darauf, wie es jeder tun würde.

  10. Die echte Anmeldeseite

    Der Link öffnet die echte Anmeldeseite von Fernloft. Die Adressleiste zeigt die echte Domain über https, alles sieht richtig aus – und genau jetzt entscheidet Alice, der Seite zu vertrauen.

Abdeckung der Sicherheits-Frameworks

OWASP Top 10

  • A01:2025 Broken Access Control
  • A01:2021 Broken Access Control

CWE

  • CWE-601 URL Redirection to Untrusted Site ('Open Redirect')

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