This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org
Germany/Projekte/Top 10 fuer Entwickler-2013/A8-Cross-Site Request Forgery (CSRF)
← A7-Fehlerhafte Autorisierung auf Anwendungsebene | A9-Nutzung von Komponenten mit bekannten Schwachstellen → |
Anwendungs- spezifisch |
Ausnutzbarkeit DURCHSCHNITTLICH |
Verbreitung HÄUFIG |
Auffindbarkeit EINFACH |
Auswirkung MITTEL |
Anwendungs-/ Geschäftsspezifisch |
Jeder, der einem Browser Inhalte unterschieben kann, die nicht beabsichtigte Requests auslösen. Hierfür kommt jede Website oder jede HTML-Quelle in Betracht, die der Nutzer verwendet. | Durch Image-Tags, XSS oder andere Techniken löst das Opfer unbeabsichtigt einen gefälschten HTTP-Request für eine Anwendung aus. Falls der Nutzer authentifiziert ist, wird dieser Angriff Erfolg haben. | CSRF nutzt aus, dass es bei den meisten Webanwendungen möglich ist, die Inhalte eines Requests für eine bestimmte Aktion vorherzusagen.
Da Browser Informationen zum Session-Management automatisch mitsenden, kann ein Angreifer gefälschte Requests auf bösartigen Websites hinterlegen, die von autorisierten und gewollten Requests nicht unterschieden werden können. CSRF-Schwächen sind leicht durch Penetrationstests oder Quellcode-Analysen auffindbar. |
Angreifer können über den Browser des Opfers alle zustandsändernden Aktionen auslösen, für das es berechtigt ist, z.B. Ändern von Daten, Aufgeben von Bestellungen, Logout und Login, usw. |
Betrachten Sie den Geschäftswert der betroffenen Daten oder Funktionen. Es bleibt die Unsicherheit, ob der Nutzer die Aktion ausführen wollte. Bedenken Sie mögliche Auswirkungen auf Ihre Reputation. |
Mögliche Angriffsszenarien
Die Anwendung erlaubt es einem Benutzer, einen zustandsändernden Request auszulösen, der kein geheimes Token beinhaltet, wie z.B.: http://example.com/app/transferFunds?amount=1500&destinationAccount=4673243243 Dadurch kann ein Angreifer einen Request erzeugen, der Geld vom Konto des Opfers auf das Konto des Angreifers transferiert. Diesen bettet der Angreifer „unsichtbar“ in ein Image-Tag oder ein Iframe ein und hinterlegt ihn in einer beliebigen Website: <img src="http://example.com/app/transferFunds?amount=1500&destinationAccount=attackersAcct#" width="0" height="0" /> Wenn das Opfer eine präparierte Seite besucht, während es bereits auf example.com authentifiziert ist, werden diese untergeschobenen Requests automatisch gültige Session-Informationen mit versenden. Die Requests sind somit unbeabsichtigt autorisiert. |
Wie kann ich 'Cross-Site Request Forgery (CSRF)' verhindern?
Um CSRF zu verhindern, sollte jede Eingabeseite einen Token beinhalten. Der Token sollte unvorhersagbar und für jede Session, besser für jedes Formular, einzigartig sein und vom Server geprüft werden.
|
← A7-Fehlerhafte Autorisierung auf Anwendungsebene | A9-Nutzung von Komponenten mit bekannten Schwachstellen → |
