Cross-Site Request Forgery (CSRF)

Ein CSRF-Angriff zwingt einen authentifizierten Benutzer (Opfer), eine gefälschte HTTP-Anforderung, einschließlich des Sitzungscookies des Opfers, an eine anfällige Webanwendung zu senden. Dadurch kann der Angreifer den Browser des Opfers zwingen, eine Anforderung zu generieren, die die anfällige App als legitime Anforderungen von wahrnimmt das Opfer.

Lassen Sie uns anhand eines einfachen Diagramms die Bedrohungsagenten, Angriffsmethoden, Sicherheitsschwächen, technischen Auswirkungen und geschäftlichen Auswirkungen dieses Fehlers verstehen.

Beispiel

Hier ist ein klassisches Beispiel für CSRF -

Step 1 - Angenommen, die anfällige Anwendung sendet eine Statusänderungsanforderung als einfachen Text ohne Verschlüsselung.

http://bankx.com/app?action=transferFund&amount=3500&destinationAccount=4673243243

Step 2 - Jetzt erstellt der Hacker eine Anfrage, die Geld vom Konto des Opfers auf das Konto des Angreifers überweist, indem er die Anfrage in ein Bild einbettet, das auf verschiedenen Websites unter der Kontrolle des Angreifers gespeichert ist. -

<img src = "http://bankx.com/app?action=transferFunds&amount=14000&destinationAccount=attackersAcct#" 
   width = "0" height = "0" />

Hände an

Step 1- Lassen Sie uns eine CSRF-Fälschung durchführen, indem wir ein Java-Skript in ein Bild einbetten. Der Schnappschuss des Problems ist unten aufgeführt.

Step 2 - Jetzt müssen wir die Übertragung in ein 1x1-Bild verspotten und das Opfer dazu bringen, darauf zu klicken.

Step 3 - Beim Senden der Nachricht wird die Nachricht wie unten hervorgehoben angezeigt.

Step 4- Wenn das Opfer nun auf die folgende URL klickt, wird die Übertragung ausgeführt, die die Benutzeraktion mithilfe der Burp-Suite abfängt. Wir können die Übertragung sehen, indem wir sie wie unten gezeigt in Get message erkennen.

Step 5 - Wenn Sie nun auf Aktualisieren klicken, wird die Markierung für den Abschluss der Lektion angezeigt.

Vorbeugende Mechanismen

  • CSRF kann vermieden werden, indem ein eindeutiges Token in einem ausgeblendeten Feld erstellt wird, das im Hauptteil der HTTP-Anforderung und nicht in einer URL gesendet wird, die anfälliger für Gefährdung ist.

  • Erzwingen der erneuten Authentifizierung des Benutzers oder Nachweis, dass er Benutzer ist, um CSRF zu schützen. Zum Beispiel CAPTCHA.