Falc410
Vice Admiral
- Registriert
- Juni 2006
- Beiträge
- 6.599
Ich weiß wie CSRF funktioniert und, dass ein Token empfohlen wird. Habe überall noch einmal nachgelesen und etwaige Pitfalls bei der Implementierung angeschaut aber das Szenario welches ich mir überlegt habe, wird nirgendwo erwähnt (z.b. Hier https://portswigger.net/web-security/csrf ).
Ein normaler User, würde ja zuerst einen GET Request machen, dann eine Webseite mit einem Formular bekommen und den CSRF Token und dann das Formular mit dem Token als POST abschicken.
Bei einem CSRF Angriff, wird der Angreifer gleich den POST Request ausführen wollen - geht natürlich nicht. Aber warum kann der Angreifer nicht einfach zwei Requests forgen? Zuerst einen GET um das Token zu bekommen (was entweder direkt im Browser des Opfers mit gespeichert wird als Cookie oder Alternativ macht der Angreifer das per Javascript selbst wenn er eh schon den Link mit Hilfe von XSS auf einer entsprechenden Seite plaziert hat) und anschließend den 2. Request als POST mit dem zuvor gewonnen Token?
Ich sehe das CSRF Token eher als zusätzlich Hürde anstatt einer richtigen Verhinderung von CSRF Angriffen. Aber anscheinend funktioniert es ja - also wo ist der Denkfehler in meinem fiktiven Szenario bei dem der Angreifer mittels CSRF einfach zwei Requests hintereinander ausführen lässt?
Ein normaler User, würde ja zuerst einen GET Request machen, dann eine Webseite mit einem Formular bekommen und den CSRF Token und dann das Formular mit dem Token als POST abschicken.
Bei einem CSRF Angriff, wird der Angreifer gleich den POST Request ausführen wollen - geht natürlich nicht. Aber warum kann der Angreifer nicht einfach zwei Requests forgen? Zuerst einen GET um das Token zu bekommen (was entweder direkt im Browser des Opfers mit gespeichert wird als Cookie oder Alternativ macht der Angreifer das per Javascript selbst wenn er eh schon den Link mit Hilfe von XSS auf einer entsprechenden Seite plaziert hat) und anschließend den 2. Request als POST mit dem zuvor gewonnen Token?
Ich sehe das CSRF Token eher als zusätzlich Hürde anstatt einer richtigen Verhinderung von CSRF Angriffen. Aber anscheinend funktioniert es ja - also wo ist der Denkfehler in meinem fiktiven Szenario bei dem der Angreifer mittels CSRF einfach zwei Requests hintereinander ausführen lässt?