CSRF-Lücken gezielt finden

Wenn bösartige Webseiten den Router umkonfigurieren oder im Webmail-Frontend eine Weiterleitung einrichten ist meist Cross Site Request Forgery im Spiel. Der CSRFTester von OWASP spürt solche Lücken gezielt auf.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 3 Min.
Von
  • Stefan Schurtz

Beim sogenannten Cross Site Request Forgery – kurz CSRF oder XSRF – handelt sich es, ähnlich wie beim Cross Site Scripting (XSS), um eine indirekte Angriffstechnik. Der Browser des Opfers reflektiert dabei die Attacke quasi wie eine Bande. CSRF beruht auf URLs, die bestimmte Aktionen auslösen – also etwa eine Sitzung beenden:

http://192.168.0.1/session.html?action=logout

oder sogar das Passwort ändern. Bösartige Web-Seiten können diese URLs dann so aufrufen, dass sie Systeme des Opfers gezielt manipulieren. Voraussetzung ist allerdings zumeist, dass der Benutzer an der Webanwendung angemeldet ist oder sich deren Passwortschutz umgehen lässt. So wurden erst kürzlich die die DNS-Einträgen von über 4 Millionen Routern manipuliert, um deren Eigentümer beim Online-Banking über den Tisch zu ziehen.

Die Java-Oberfläche des CRSFTester ist schmucklos, erfüllt aber ihren Zweck.

Mit dem in Java geschriebenen CSRFTester des Open Web Application Security Project (OWASP) kann man Web-Anwendungen sehr einfach auf diese Schwachstellen überprüfen. Es zeichnet im Wesentlichen eine legitime Sitzung des Anwenders auf und baut daraus Web-Seiten, die dann versuchen, die durchgeführten Aktionen erneut zu aktivieren.

Die Benutzung des CSRFTesters gestaltet sich recht einfach und unproblematisch. Nach dem Entpacken des Archivs startet man ihn per run.bat und trägt ihn als Proxy im Browser ein (standardmäßig lauscht das Programm auf Port 8008). Danach kann man Webseiten weiterhin wie gewohnt aufrufen und benutzen.

Erst durch das Aktivieren mit "Start Recording" in der oberen rechten Ecke beginnt das Tool, die im Browser aufgerufenen URLs tatsächlich aufzuzeichnen – samt GET und POST-Parametern natürlich. Anschließend erzeugt es durch einen Klick auf "Generate HTML" passenden Code zum Auffinden einer CSRF-Schwachstelle. Die Ausgabe erfolgt in eine Datei namens "index.html" in einem frei wählbaren Verzeichnis. Dabei stehen mit "Forms", "iFrame", "IMG", "XHR" und "Link" fünf unterschiedliche Methoden zum Einbetten des Proof-of-Concept-Codes zur Verfügung.

Der CSRFTester bietet darüber hinaus diverse Filter und Möglichkeiten, den PoC nachträglich zu bearbeiten. Wer sich mit dem Thema "Cross site request forgery" näher befassen möchte oder seine Webanwendung auf diese Schwachstellen hin überprüfen möchte, sollte ruhig einen Blick auf das Tool werfen. Die schnelle und unproblematische Benutzung macht es in der Praxis zu einem hilfreichen Werkzeug.

Mir persönlich hat es sowohl im beruflichen als auch im privaten Umfeld bei der Suche nach Schwachstellen bereits gute Dienste geleistet. So konnte ich mit seiner Hilfe zum Beispiel diverse CSRF-Schwachstellen im Webmail-Frontend von T-Online identifizieren. Diese ermöglichten es einem potenziellen Angreifer, den Spamfilter zu deaktivieren sowie sämtliche E-Mails des Benutzers an einen anderen Account weiterzuleiten. Nach der Benachrichtigung durch heise Security hat T-Online diese Lücken beseitigt.

Das OWASP stellt den CSRFTester kostenlos als Open Source unter der der LGPL zur Verfügung. (ju)