Durchführung eines Cross-Site-Antrags an Anfragen von Fälschungen

Durchführung eines Cross-Site-Antrags an Anfragen von Fälschungen
Ein CSRF -Angriff ist derjenige, der authentifizierte Benutzer in der Webanwendung, mit denen sie authentifiziert sind. Dies erfolgt über eine externe Site, die der Benutzer besucht und die diese Aktionen auslöst.

In diesem Artikel erhalten Sie die erforderlichen Informationen aus der Anwendung, um zu wissen, was die Angriffsseite tun soll, um gültige Anforderungen an den schutzbedürftigen Server zu senden. Anschließend erstellen Sie eine Seite, die die legitimen Anforderungen simuliert und den Benutzer dazu bringt, diese Seite zu besuchen, während sie authentifiziert sind. Sie werden auch ein paar Iterationen zum grundlegenden Proof of Concept durchführen, damit es eher wie ein realer Angriff aussieht, bei dem das Opfer es nicht bemerkt. Beachten Sie, dass die Codedatei für diesen Artikel im GitHub des Autors gefunden werden kann.

Fertig werden

In Bodgeit benötigen Sie für diesen Artikel ein gültiges Benutzerkonto. Dieser Artikel verwendet [email protected] Als Opfer:

Wie es geht…

Zuerst müssen Sie die Anfrage analysieren, die Sie zum Opfer zwingen möchten. Dazu benötigen Sie Burp Suite oder einen anderen im Browser konfigurierten Proxy:

  1. Melden Sie sich bei Bodgeit als Benutzer an und klicken Sie auf den Benutzernamen, um zum Profil zu gehen.
  2. Eine Passwortänderung vornehmen. Sehen Sie, wie die Anfrage im Proxy aussieht:

    Also ist es ein POST Anfrage zu http: // 192.168.56.11/Bodgeit/Passwort.JSP, und hat nur das Passwort und seine Bestätigung im Körper.

  3. Versuchen Sie, eine sehr einfache HTML -Seite zu erstellen, die diese Anfrage wiederholt. Erstellen Sie eine Datei (nennen Sie sie CSRF-Veränderungswort.html) mit dem folgenden Inhalt:







  4. Laden Sie diese Datei nun im selben Browser wie Ihre angemeldete Sitzung:
  5. Klicken Sie auf Senden und Sie werden auf die Profilseite des Benutzers weitergeleitet. Sie werden erfahren, dass das Passwort erfolgreich aktualisiert wurde.
  6. Obwohl dies den Punkt beweist. Es ist immer noch unwahrscheinlich, dass ein Benutzer auf die klickt Einreichen Sie können es automatisieren und die Eingangsfelder verbergen, damit der böswillige Inhalt versteckt ist. Machen Sie nun eine neue Seite basierend auf der vorherigen; nennen CSRF-Veränderungsword-Schriften.html:


    Eine völlig harmlose Seite


    Sie können dieser Seite vertrauen.
    Nichts Schlimmes wird Ihnen oder Ihrem Bodgeit -Konto passieren.





    Dieses Mal hat das Formular einen ID -Parameter und auf der Seite befindet sich ein Skript, das seinen Inhalt übermittelt, wenn die Seite vollständig geladen wird.

  7. Wenn Sie diese Seite im selben Browser laden, in dem eine Bodgeit -Sitzung eingeleitet wird, wird die Anforderung automatisch gesendet und die Profilseite des Benutzers wird danach angezeigt. Im folgenden Screenshot des Browsers des Browsers DebuggerSetzen Sie einen Haltepunkt kurz vor der Anfrage:
  8. Dieser letzte Versuch sieht aus der Sicht eines Angreifers besser aus. Sie brauchen das Opfer nur, um die Seite zu laden, und die Anfrage wird automatisch gesendet, aber dann wird das Opfer das sehen Ihr Passwort wurde geändertNachricht, und das wird sicherlich einen Alarm erhöhen.
  9. Sie können die Angriffsseite weiter verbessern, indem Sie die Antwort in einem unsichtbaren Rahmen innerhalb derselben Seite laden. Es gibt viele Möglichkeiten, dies zu tun; Eine schnelle und schmutzige besteht darin, eine Größe 0 für den Rahmen einzustellen. Ihre Datei würde so aussehen:


    Eine völlig harmlose Seite


    Sie können dieser Seite vertrauen.
    Nichts Schlimmes wird Ihnen oder Ihrem Bodgeit -Konto passieren.
    target = "target_frame">





    Beachten Sie, wie die Zieleigenschaft des Formulars der Iframe ist, der knapp darunter definiert ist und dass ein solcher Rahmen 0%Höhe und Breite hat.

  10. Laden Sie die neue Seite im Browser, in der die Sitzung eingeleitet wurde. Dieser Screenshot zeigt, wie die Seite aussieht, wenn sie mit dem Browser inspiziert werden Entwicklerwerkzeuge: Beachten Sie, dass das Iframe -Objekt nur eine schwarze Zeile auf der Seite ist. In Inspektor können Sie feststellen, dass es die Profilseite des Bodgeit -Benutzers enthält.
  11. Wenn Sie die von Ihrer CSRF -Seite durchgeführte Netzwerkkommunikation analysieren, können Sie feststellen, dass sie tatsächlich Anfragen zur Änderung des Bodgeit -Passworts stellt:

Wie es funktioniert…

Wenn Sie eine Anfrage von einem Browser senden und bereits einen Cookie zur gespeicherten Zieldomäne haben, wird der Browser das Cookie an die Anfrage angeschlossen. Dies macht Cookies so bequem wie Sitzungskennungen, aber dieses Merkmal, wie HTTP funktioniert.

Wenn Sie eine Seite im selben Browser laden, auf dem Sie eine aktive Sitzung in einer Anwendung haben. Dies geschieht auch, wenn es sich um ein anderes Registerkarte oder ein anderes Fenster handelt. Diese Seite stellt eine Anfrage an die Domain, in der die Sitzung eingeleitet wird.

Wenn der Server nicht überprüft, ob die Anforderungen, die er empfängt, tatsächlich in der Anwendung stammt, ermöglicht es einer böswilligen Site, im Namen legitimer, aktiver Benutzer, die diese böswillige Website besuchen, Anrufe zu tätigen, während sie sich der Zieldomäne authentifiziert haben.

In einem Webanwendungs ​​-Penetrationstest, dem ersten Code, den Sie verwendet haben, den mit den beiden Textfeldern und die Einreichen Taste, kann ausreichen, um das Vorhandensein eines Sicherheitsfehlers zu demonstrieren. Die Penetrationstests der Anwendung kann jedoch Teil eines anderen Engagements sein, z. In diesem Fall sind einige zusätzliche Anstrengungen erforderlich, um zu verhindern, dass der Opferbenutzer vermutet, dass etwas passiert.

In diesem Artikel haben Sie JavaScript verwendet, um das Senden der Anforderung zu automatisieren, indem Sie das Onload -Ereignis auf der Seite festlegen und die Subulationsmethode des Formulars in der Veranstaltungshandlerfunktion ausführen. Sie haben auch ein verstecktes Iframe verwendet, um die Antwort der Passwortänderung zu laden. Das Opfer sieht also nie die Nachricht, dass sich sein Passwort geändert hat.

Wenn Sie diesen Artikel interessant fanden, können Sie erkunden Kali Linux Web -Penetrationstestkochbuch - zweite Ausgabe Um die häufigsten Webanfälligkeiten für Web zu entdecken und zu verhindern, dass sie eine Bedrohung für die Sicherheit Ihrer Website werden. Kali Linux Web -Penetrationstestkochbuch - zweite Ausgabe gibt Ihnen die Fähigkeiten, die Sie benötigen, um jede Phase eines Penetrationstests abzudecken - vom Sammeln von Informationen über das System und die Anwendung bis hin zur Identifizierung von Schwachstellen durch manuelle Tests.