“I don’t think CSRF is as big of a deal”
Samstag, 17. April 2010, 11:08 Uhr | Autor: ich
Es ist eine alte Wahrheit: Was Computern leicht fällt, fällt Menschen oftmals sehr schwer und umgekehrt. Und ein Web Vulnerability Scanner kann, wie auch ein Virenscanner, nur etwas finden wenn ihm ein entsprechendes Muster für Vergleiche vorliegt.
Kevin Beaver behauptet: Weil kommerzielle Schwachstellen-Scanner mit dem Aufspüren von CSRF-Lücken Probleme haben, so hätten auch Menschen Probleme beim Auffinden solcher Lücken. Und es wäre auch schwer eine gefundene Lücke auszunutzen. Seine Schlussfolgerung daraus: Man solle dieser Art von Schwachstelle weniger Beachtung schenken und lieber die offensichtlichen, leicht auffindbaren Lücken suchen und schließen.
Erst über den Blogeintrag “CSRF Isn’t A Big Deal – Duh!” (ha.ckers.org) von Robert “RSnake” Hansen bin ich auf Kevin Beaver gekommen.
Kevin Beaver hat angeblich 20 Jahre Erfahrung in der Branche. Und erzählt so etwas seinen Kunden? Wieder ein spezieller Experte. ;O)
Ich weiß nicht wie der Algorithmus eines Web Vulnerability Scanner aufgebaut ist um Lücken zu Cross-Site Request Forgery (de.wikipedia.org) zu finden, aber für mich als Human Web Vulnerability Scanner ist das Auffinden recht einfach.
Wenn eine CSRF-Lücke vorliegt besteht kaum ein Problem ein funktionierenden Exploit zu erstellen, etwas HTML- und JavaScript-Kenntnisse reichen vollkommen aus. Der Angreifer muss sein Opfer nur noch auf eine präparierte Website locken, um zum Ziel zu kommen.
Wenn beispielsweise das Anlegen eines neues Users in einem CMS über ein Formular erfolgt welches folgende Daten versendet:
http://wordpress/wp-admin/user-new.php
[POST]
action=adduser
&user_login=tester
&email=name@mail.tld
&pass1=12345678
&pass2=12345678
&role=administrator
So kann man davon ausgehen das eine CSRF-Lücke vorliegt.
In WordPress gibt es aber noch den Parameter _wpnonce der CSRF verhindert:
http://wordpress/wp-admin/user-new.php
[POST]
_wpnonce=abc123xyz789
&action=adduser
&user_login=tester
&email=name@mail.tld
&pass1=12345678
&pass2=12345678
&role=administrator
Der Wert hinter _wpnonce ist für eine bestimmte Aktion und einen bestimmten Blog immer derselbe. Sollte es, evtl. über eine Sicherheitslücke, möglich sein diesen Wert aus einem fremden Blog auszulesen oder ihn zu berechnen, so täte sich eine CSRF-Lücke auf.






