Cross-Site-Request-Forgery

Der Begriff und die Technik

Cross Site Request Forgery (Fälschung von standortübergreifenden Anfragen), oder abgekürzt als CSRF / XSRF bekannt, zielt primär auf Benutzer von Webanwendungen bzw. Webseiten ab.

Dabei kann die Webanwendung so manipuliert werden, dass beim Opfer unerwünschte Transaktionen zugunsten des Angreifers ausgeführt werden. Wichtig dabei ist, dass das Opfer sich in einem angemeldeten Zustand (authentifiziert) innerhalb der Webanwendung befindet. Im authentifizierten Zustand stehen mehr Funktionalitäten zur Verfügung als im nicht authentifizierten Zustand. Diese Situation macht sich der Angreifer beim Cross-Site-Request-Forgery zunutze.

Cross Site Request Forgery in der Realität

Eine Cross-Site-Request Forgery wird in der Regel durch ein Formular (z. B.: ein Inputfeld für eine Suche oder Anmeldung auf einer Webseite) ausgeführt. Dieses ist im Vorfeld durch den Angreifer so manipuliert, dass die eingegebenen Informationen an einen anderen Empfänger über eine HTTP-Anfrage gesendet werden. Besitzt das Opfer eine aktuelle Nutzer-Session einer Webanwendung, und ist zudem noch Administrator, so kann hierdurch im Namen des Opfers beispielsweise ein Benutzeraccount auf einem sensitiven System erstellt werden. Eine weitere Variante des CSRF ist das Ausführen von Systembefehlen auf dem jeweiligen Webserver (Zielsystem). Der Fehler liegt dabei darin, dass die Herkunft der Anfrage nicht vom Browser oder der Anwendung identifiziert werden kann. Genau dieses Unterfangen stellt eine Schwäche heutiger Browser dar.

Weitere Auswirkungen dieser HTTP-Requests können beispielsweise eine Benutzerrechte Erweiterung zu Folge haben. Es können Befehle ausgeführt werden, die vorher unzugänglich waren oder vollständige Benutzer Sitzungen einer Webanwendung können in die Hände des Angreifers fallen (Session Hijacking / Session Riding). Die Befehle, gesteuert vom Angreifer, ausgeführt durch das Opfer, werden meist im Hintergrund ausgeführt, sodass das Opfer diese Aktionen nicht wahrnimmt.

Cross Site Request Forgery kann zudem nicht unmittelbar auf dem Computersystem ausgeführt werden, wie beispielsweise ein Exploit (Schwachstelle eines Dienstes oder Computersystems). Dazu bedarf es weiterer Angriffsmethoden.

Cross Site Request Forgery Beispiel
Sicherheitsfaktor Mensch!
Buche jetzt eine Schulung für Dein Personal!
Jetzt Anfragen

Varianten der Cross Site Request Forgery Angriffsmethode

CSRF in Verbindung mit Social Engineering Angriffen

Phishingmail:

Der Angreifer kann einen manipulierten HTTP-Request, sprich: einen Link erstellen und versuchen, diesen dem Opfer unterzujubeln. Hierbei wird der infizierte Link, meist mit präparierten Parametern an der URL verkettet, über eine sogenannte Phishingmail (Social Engineering) an das Opfer versendet. Der vollständige Link bzw. Bestandteil eines Links mit Parametern kann durch URL-Spoofing verschleiert werden, ohne dass es dem Opfer auffällt. Klickt nun das Opfer auf den erhaltenen Link, so wird dann die gewünschte Aktion zugunsten des Angreifers (Cross Site Request Forgery) ausgeführt.
Ein infizierter Link zum Erstellen eines neuen Benutzers auf einer Webanwendung durch das Opfer könnte wie folgt aussehen:

www.zielsystem.de/adminpanel.php?action=createUser&username=hacker&password=hacker

Phishing Seite:

Basierend auf einer Phishingmail kann der Angreifer das Opfer ebenso auf eine infizierte Webseite leiten. Hierzu bedarf es nicht unbedingt einer Manipulation der Parameter in einer URL-Anfrage (GET-Parameter Manipulation), sondern es kann auf der Zielseite bereits im Vorfeld manipulierte Elemente, wie beispielsweise ein Bild, implementiert worden sein mit einem verstecktem CSRF Befehl, der beim Anklicken die gewünschte Aktion des Angreifers im Hintergrund durch das Opfer ausführt.

Ein weiterer Anwendungsfall für CSRF kann ein bereits manipuliertes Formularfeld sein, welches die Daten nicht ans eigentliche Ziel, sondern an den Angreifer sendet, um somit die Kompromittierung eines Benutzeraccounts einzuleiten.

Session-Riding:

Session Daten liegen im Cache des Browsers ab. Es ist der Anwendung überlassen, wie mit diesen Daten umgegangen wird. Beim Beenden des Browsers wird der Cache in der Regel geleert, bestenfalls aber durch die Anwendung. Session Daten repräsentieren einen Zustand innerhalb einer Webanwendung, wie beispielsweise den Fortschritt auf einer Shop-Seite (Warenkorbeinträge) oder aber, ob ein Benutzer angemeldet ist oder nicht. Der Angreifer fokussiert sich hierbei gezielt auf die wichtigsten Daten.

Dabei muss ein gewisses Know-how über das Zielsystem vorhanden sein, um einen erfolgreichen CSRF-Angriff nachfolgend durchzuführen. Auf diese Cache-Daten zielt der Angreifer ab, um sich ggfs. als Benutzer (Opfer) bei der Webanwendung anmelden zu können.

Folgende Browser Caches gibt es:

  • Session Storage
  • Local Storage
  • Cookie Storage
  • Cache Storage
  • Indexed DB

CSRF in Verbindung mit Cross Site Scripting (XSS)

Zum anderen kann, durch eine bestehende Schwachstelle in einer Webanwendung namens “Cross Site Scripting” aufbauend, auf diesem ein Cross Site Request Forgery Angriff folgen.

Cross Site Scripting beschreibt im Wesentlichen das Ausführen von JavaScript Code (Programmiersprache in der Webentwicklung) auf der Clientseite des Opfers, wird von aktuellen Browsern unterstützt und ist initial in jedem Browser aktiv. Mit JavaScript lassen sich aufeinander aufbauende Anweisungen programmieren, die es ermöglichen, komplexere Aufgaben innerhalb einer Webanwendung zu realisieren und zugunsten des Angreifers ausführen zu lassen.

Hierbei kann nach dem Ausführen von XSS (Cross Site Scripting) die gewünschte Aktion durch CSRF auf Opferseite umgesetzt werden. Als Beispiel kann hierdurch ein Anmeldeformular oder Benutzerprofil mit Zahlungsdaten so manipuliert werden, dass die Daten nicht ans eigentliche Ziel geleitet, sondern zum Angreifer versendet werden.

Lässt sich deine Web-App
durch CSRF manipulieren?
Durch unseren OWASP Penetration Test finden wir Deine Schwachstellen!
Jetzt Anfragen

CSRF in Verbindung mit Exploits

Computersysteme und darauf laufende Dienste können Sicherheitslücken beinhalten, die es dem Angreifer durch Ausnutzen gestatten, einen vollen Zugriff auf das System zu erhalten. Ist dieser Schritt getan, hat der Angreifer leichtes Spiel und muss anschließend eine Schadsoftware auf dem System installieren, um bei der nächsten Browserbenutzung die gewünschte Aktion auszuführen.

Dieser Angriff kann z. B. auch über das Installieren eines infizierten Browser Plugins vollzogen werden. Die Auswirkungen können dieselben sein wie in den Punkten zuvor beschrieben.

ANDERE BEITRÄGE

Inhaltsverzeichnis

Wir verwenden Cookies, um Ihnen die bestmögliche Erfahrung zu bieten. Wenn Sie unsere Website weiterhin besuchen, stimmen Sie der Verwendung von Cookies zu, wie in unserer Datenschutzerklärung beschrieben.