CSRF PoC in Burp Suite generieren

Beginner
Jetzt üben

Einleitung

In diesem Lab lernen Sie eine grundlegende Technik beim Testen der Sicherheit von Webanwendungen kennen: das Generieren eines Proof of Concept (PoC) für Cross-Site Request Forgery (CSRF) mit Burp Suite. CSRF ist eine Angriffsart, bei der ein Opfer dazu verleitet wird, eine bösartige Anfrage zu übermitteln. Burp Suite bietet eine leistungsstarke Funktion zur automatischen Erstellung eines PoC, der verwendet werden kann, um die Auswirkungen einer Schwachstelle zu demonstrieren.

Sie verwenden den Proxy von Burp Suite, um eine Anfrage abzufangen, die den Zustand der Anwendung ändert (z. B. die Aktualisierung einer E-Mail-Adresse), und nutzen dann dessen "Engagement Tools", um ein HTML-Formular zu generieren, das diese Anfrage reproduziert. Diese praktische Übung wird Ihr Verständnis dafür vertiefen, wie CSRF-Angriffe erstellt und getestet werden.

Eine zustandsändernde Anfrage finden (z. B. E-Mail aktualisieren) im Proxy-Verlauf

In diesem Schritt starten Sie Burp Suite, verwenden den integrierten Browser, um eine Aktion auf einer Zielwebsite auszuführen, und lokalisieren dann die entsprechende Anfrage im Proxy-Verlauf. Eine "zustandsändernde Anfrage" ist jede Anfrage, die Daten auf dem Server modifiziert, wie z. B. das Ändern eines Passworts, das Absenden eines Kommentars oder das Aktualisieren von Profilinformationen.

Zuerst starten wir Burp Suite.

  1. Klicken Sie im Menü oben links auf dem Bildschirm auf Applications.
  2. Gehen Sie zu Web und wählen Sie Burp Suite Community Edition.
  3. Ein Dialogfeld wird angezeigt. Behalten Sie die Standardeinstellungen (Temporary project) bei und klicken Sie auf Next.
  4. Wählen Sie auf dem nächsten Bildschirm Use Burp defaults und klicken Sie auf Start Burp.

Sobald Burp Suite läuft, öffnen Sie den integrierten Browser.

  1. Gehen Sie zum Tab Proxy und dann zum Unter-Tab Intercept.
  2. Klicken Sie auf die Schaltfläche Open Browser. Ein neues Chromium-Browserfenster wird geöffnet, das vorkonfiguriert ist, um den Datenverkehr über Burp Suite zu leiten.

Nun führen wir eine Aktion aus, die wir erfassen möchten. Für dieses Lab verwenden wir eine Testwebsite von PortSwigger.

  1. Navigieren Sie im Burp-Browser zur folgenden URL:
    https://portswigger.net/web-security/csrf/lab-no-defenses
    
  2. Klicken Sie auf Access the lab. Sie werden zu einer Blog-Website weitergeleitet.
  3. Melden Sie sich mit den Anmeldedaten wiener:peter in der Anwendung an. Sie finden diese Anmeldedaten in der Lab-Beschreibung auf der Seite.
  4. Nach der Anmeldung sehen Sie ein Formular "Update email". Geben Sie eine neue E-Mail-Adresse ein, z. B. test@example.com, und klicken Sie auf Update email.

Schließlich finden wir die Anfrage in Burp Suite.

  1. Kehren Sie zum Burp Suite-Fenster zurück.
  2. Navigieren Sie zum Tab Proxy und dann zum Unter-Tab HTTP history.
  3. Durchsuchen Sie die Liste der Anfragen. Sie sollten eine POST /my-account/change-email-Anfrage sehen. Dies ist die zustandsändernde Anfrage, die wir anvisieren möchten. Klicken Sie darauf, um ihre Details im darunter liegenden Bereich anzuzeigen.
POST /my-account/change-email HTTP/2
Host: your-lab-id.web-security-academy.net
...

email=test%40example.com

Sie haben nun erfolgreich eine zustandsändernde Anfrage abgefangen und identifiziert.

Rechtsklick auf die Anfrage

In diesem Schritt verwenden Sie das Kontextmenü von Burp Suite, um auf dessen erweiterte Funktionen zuzugreifen. Das Kontextmenü ist ein Kernbestandteil des Burp Suite-Workflows und bietet schnellen Zugriff auf verschiedene Werkzeuge, die auf eine ausgewählte Anfrage angewendet werden können.

Während die Anfrage POST /my-account/change-email im Tab Proxy > HTTP history weiterhin hervorgehoben ist, führen Sie folgende Aktion aus:

  1. Bewegen Sie den Mauszeiger über die ausgewählte Anfragezeile.
  2. Klicken Sie mit der rechten Maustaste auf die Anfrage.

Dadurch wird ein großes Kontextmenü mit vielen Optionen geöffnet. Dieses Menü ist kontextsensitiv, was bedeutet, dass die verfügbaren Optionen davon abhängen können, wohin Sie klicken. Durch einen Rechtsklick auf eine Anfrage erhalten Sie eine Liste von Aktionen, die Sie auf diese spezifische Anfrage anwenden können, wie z. B. das Senden an andere Burp-Werkzeuge wie Repeater, Intruder oder, in unserem Fall, den CSRF PoC-Generator.

Nehmen Sie sich einen Moment Zeit, um die verfügbaren Optionen zu betrachten und sich mit den Möglichkeiten vertraut zu machen.

Zu Engagement tools > Generate CSRF PoC navigieren

In diesem Schritt navigieren Sie durch das Kontextmenü, um den CSRF PoC-Generator zu finden und zu starten. Dieses Werkzeug ist unter "Engagement tools" kategorisiert, also Funktionen, die dazu dienen, Schwachstellen zu demonstrieren und zu melden.

Nachdem Sie im vorherigen Schritt mit der rechten Maustaste auf die Anfrage geklickt haben, ist das Kontextmenü nun sichtbar. Führen Sie die folgenden Schritte aus, um den PoC zu generieren:

  1. Suchen Sie im Kontextmenü die Option Engagement tools und fahren Sie mit der Maus darüber. Dadurch wird ein Untermenü angezeigt.
  2. Klicken Sie im erscheinenden Untermenü auf Generate CSRF PoC.

Ein neues Fenster mit dem Titel "Generate CSRF PoC" wird geöffnet. Burp Suite hat die von Ihnen ausgewählte POST-Anfrage automatisch analysiert und eine einfache HTML-Seite generiert, die beim Absenden dieselbe Anfrage erneut ausführt. Dies ist der Kern eines CSRF-Angriffs: den Browser eines Benutzers dazu zu bringen, eine Anfrage an eine Website zu senden, auf der er bereits authentifiziert ist.

Überprüfung des generierten HTML-Formulars

In diesem Schritt untersuchen Sie den von Burp Suite generierten HTML-Code. Das Verständnis dieses Codes ist entscheidend, um zu verstehen, wie der CSRF-Angriff funktioniert.

Im Fenster "Generate CSRF PoC" sehen Sie einen Block mit HTML-Code. Er sollte in etwa wie folgt aussehen:

<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
    <script>
      history.pushState("", "", "/");
    </script>
    <form
      action="https://your-lab-id.web-security-academy.net/my-account/change-email"
      method="POST"
    >
      <input type="hidden" name="email" value="test&#64;example&#46;com" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>

Lassen Sie uns die Schlüsselkomponenten dieses HTML aufschlüsseln:

  • <form action="..." method="POST">: Dies definiert ein HTML-Formular. Das action-Attribut gibt die URL an, an die die Formulardaten gesendet werden – in diesem Fall der Endpunkt, der zum Ändern der E-Mail-Adresse verwendet wird. Die method="POST" entspricht der Methode der ursprünglichen Anfrage.
  • <input type="hidden" name="email" value="...">: Dies ist ein verstecktes Formularfeld. Es enthält den Parameter, der vom Server benötigt wird, um die Aktion auszuführen. Hier ist es der email-Parameter mit dem Wert test@example.com. Da es versteckt ist, würde ein Opfer, das diese Seite besucht, es nicht sehen.
  • <input type="submit" value="Submit request" />: Dies erstellt die Schaltfläche, auf die ein Opfer klicken müsste, um den Angriff auszulösen. Bei fortgeschritteneren Angriffen kann diese Übermittlung automatisch mithilfe von JavaScript ausgelöst werden.

Diese einfache HTML-Seite ist ein funktionsfähiger Proof of Concept für die CSRF-Schwachstelle.

Die Funktion "Test in browser" zur Überprüfung des PoC verwenden

In diesem Schritt verwenden Sie den generierten PoC, um die CSRF-Schwachstelle zu bestätigen. Burp Suite erleichtert dies mit einer integrierten Testfunktion.

Im Fenster "Generate CSRF PoC" finden Sie eine Schaltfläche mit der Bezeichnung Test in browser. Diese Funktion ermöglicht es Ihnen, den PoC direkt in derselben Browsersitzung zu testen, in der Sie bei der Zielanwendung authentifiziert sind.

  1. Klicken Sie auf die Schaltfläche Test in browser.
  2. Burp Suite gibt Ihnen eine eindeutige URL aus. Klicken Sie auf die Schaltfläche Copy, um diese URL in Ihre Zwischenablage zu kopieren.
  3. Kehren Sie zum integrierten Browser von Burp zurück (dem Chromium-Fenster).
  4. Fügen Sie die kopierte URL in die Adressleiste ein und drücken Sie Enter.

Eine neue Seite wird geladen, die nur eine Schaltfläche "Submit request" anzeigt. Dies ist Ihr PoC in Aktion.

  1. Klicken Sie auf die Schaltfläche Submit request.

Der Browser sendet die POST-Anfrage an die Webanwendung. Da Sie bereits angemeldet sind (Ihr Browser hat den Session-Cookie), wird die Anwendung die Anfrage so verarbeiten, als hätten Sie sie legitim gestellt.

Um zu bestätigen, dass der Angriff erfolgreich war:

  1. Navigieren Sie zurück zum Tab mit der Blog-Anwendung.
  2. Aktualisieren Sie die Seite oder klicken Sie auf den Link "My account".
  3. Sie sollten sehen, dass die E-Mail auf test@example.com (oder welchen Wert auch immer Ihr PoC enthielt) aktualisiert wurde. Das Labor sollte auch die Meldung "Congratulations, you solved the lab!" anzeigen.

Dies bestätigt, dass der CSRF PoC funktioniert und die Anwendung anfällig ist.

Zusammenfassung

In diesem Labor haben Sie erfolgreich gelernt, wie Sie Burp Suite verwenden, um einen Proof of Concept für Cross-Site Request Forgery (CSRF) zu generieren und zu testen.

Sie haben den vollständigen Workflow für diese Aufgabe geübt:

  1. Abfangen einer zustandsändernden Anfrage mit dem Proxy von Burp.
  2. Zugriff auf Engagement tools über das Kontextmenü.
  3. Generieren des CSRF PoC mit einem einzigen Klick.
  4. Analysieren des resultierenden HTML, um den Angriffsmechanismus zu verstehen.
  5. Testen des PoC im Browser, um die Schwachstelle zu bestätigen.

Diese Fähigkeit ist für jeden Sicherheitsexperten im Bereich Webanwendungen unerlässlich, da sie eine klare und effektive Möglichkeit bietet, die realen Auswirkungen einer CSRF-Schwachstelle für Entwickler und Stakeholder zu demonstrieren.