HTTP-Anfrage mit Burp Proxy im laufenden Betrieb ändern

Beginner
Jetzt üben

Einleitung

In diesem Lab lernen Sie die Grundlagen des Abfangens und Modifizierens von Web-Traffic mit Burp Suite, einem der beliebtesten Tools für die Sicherheitstests von Webanwendungen. Die Fähigkeit, eine HTTP-Anfrage abzufangen, ihren Inhalt zu ändern, bevor sie den Server erreicht, und dann die Antwort zu beobachten, ist eine grundlegende Fähigkeit zur Entdeckung einer Vielzahl von Schwachstellen, wie z. B. Parameter Tampering und Insecure Direct Object References.

Sie werden Burp Proxy verwenden, um eine Anfrage von Ihrem Browser zu erfassen, einen URL-Parameter "on the fly" zu ändern und sie an eine einfache lokal laufende Webanwendung weiterzuleiten. Diese praktische Übung demonstriert, wie ein Proxy verwendet werden kann, um die Kommunikation zwischen einem Client und einem Server zu manipulieren.

Intercept-Modus im Proxy-Tab aktivieren

In diesem Schritt starten Sie Burp Suite und aktivieren seine Kernfunktion zum Abfangen von Traffic. Der Burp Proxy fungiert als Man-in-the-Middle zwischen Ihrem Browser und dem Ziel-Webserver, wodurch Sie den gesamten durch ihn fließenden Traffic einsehen und ändern können.

Öffnen Sie zuerst den Anwendungsstarter in der oberen linken Ecke des Desktops und starten Sie Burp Suite.

  1. Klicken Sie auf "Temporary project" und dann auf "Next".
  2. Wählen Sie "Use Burp defaults" und klicken Sie auf "Start Burp".

Sobald Burp Suite geöffnet ist, navigieren Sie zum Tab Proxy. Hier steuern Sie das Abfangen von HTTP-Traffic.

Innerhalb des Proxy-Tabs sehen Sie mehrere Unter-Tabs. Stellen Sie sicher, dass Sie sich auf dem Unter-Tab Intercept befinden. Hier finden Sie eine Schaltfläche, die das Abfangen ein- und ausschaltet. Standardmäßig ist es möglicherweise ausgeschaltet.

Klicken Sie auf die Schaltfläche "Intercept is off", um sie zu aktivieren. Der Text der Schaltfläche ändert sich zu "Intercept is on", und sie erscheint eingedrückt.

Nun wartet der Burp Proxy aktiv darauf, die nächste HTTP-Anfrage des in dieser Laborumgebung vorkonfigurierten Browsers zu erfassen.

Eine Anfrage vom Browser abfangen

In diesem Schritt generieren Sie eine HTTP-Anfrage vom Webbrowser und erfassen sie in Burp Suite. Da der Intercept-Modus aktiviert ist, hält Burp die Anfrage zurück und verhindert, dass sie den Server erreicht, bis Sie entscheiden, was damit geschehen soll.

Öffnen Sie den im Laborumgebung bereitgestellten Webbrowser. Der Browser ist bereits so konfiguriert, dass er seinen Traffic über den Burp Proxy leitet, der auf 127.0.0.1:8080 läuft.

Geben Sie in die Adressleiste des Browsers die URL der einfachen Webanwendung ein, die durch das Setup-Skript gestartet wurde, und drücken Sie Enter:

http://127.0.0.1:5000/search?q=books

Sie werden feststellen, dass der Browser-Tab ein Lade-Symbol anzeigt und die Seite nicht geladen wird. Dies ist das erwartete Verhalten. Es zeigt an, dass der Burp Proxy die Anfrage erfolgreich abgefangen hat und auf Ihre Aktion wartet.

Wechseln Sie nun zurück zum Burp Suite-Fenster. Im Tab Proxy -> Intercept sehen Sie den Rohinhalt der HTTP-Anfrage, die Ihr Browser gerade gesendet hat.

GET /search?q=books HTTP/1.1
Host: 127.0.0.1:5000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
...

Sie haben nun erfolgreich eine HTTP-Anfrage erfasst, bevor sie ihr Ziel erreicht hat.

Ändern eines Parameterwerts in der 'Raw'-Anfrageansicht

In diesem Schritt ändern Sie die abgefangene HTTP-Anfrage. Dies ist der Kern der dynamischen Manipulation von Anfragen. Sie können jeden Teil der Anfrage ändern, einschließlich der Methode, des Pfads, der Header oder des Bodys. Für dieses Labor ändern Sie einen URL-Parameter.

Wenn die Anfrage im Tab Proxy -> Intercept angezeigt wird, stellen Sie sicher, dass Sie sich in der Raw-Ansicht befinden. Diese Ansicht zeigt den Klartext der Anfrage an, was die direkte Bearbeitung erleichtert.

Suchen Sie die erste Zeile der Anfrage:

GET /search?q=books HTTP/1.1

Der Teil q=books ist ein URL-Parameter. Die serverseitige Anwendung verwendet den Wert von q (der derzeit books ist), um ihre Antwort zu generieren.

Bearbeiten Sie diesen Wert nun direkt im Textbereich. Klicken Sie in die Raw-Ansicht und ändern Sie books in dvds.

Die geänderte erste Zeile sollte nun wie folgt aussehen:

GET /search?q=dvds HTTP/1.1

Sie haben die Anfragedaten im Transit erfolgreich geändert. Der Browser ist sich dieser Änderung nicht bewusst; er denkt immer noch, dass er die Seite mit q=books angefordert hat. Der Server hat noch keine Anfrage erhalten.

Die geänderte Anfrage weiterleiten

In diesem Schritt werden Sie die geänderte Anfrage aus dem Burp Proxy freigeben und zulassen, dass sie zum Webserver weitergeleitet wird.

Nachdem Sie die Anfrage im Tab Intercept bearbeitet haben, müssen Sie entscheiden, was damit geschehen soll. Über die Schaltflächen am oberen Rand der Ansicht haben Sie drei Hauptoptionen:

  • Forward: Sendet die Anfrage (in ihrem aktuellen, möglicherweise geänderten Zustand) an den Server.
  • Drop: Verwirft die Anfrage vollständig. Der Browser wird schließlich mit einem Timeout beendet.
  • Action: Bietet ein Menü mit weiteren Aktionen, wie z. B. das Senden der Anfrage an andere Burp-Tools.

Um Ihre geänderte Anfrage an den Server zu senden, klicken Sie auf die Schaltfläche Forward.

Nachdem Sie die Anfrage weitergeleitet haben, zeigt Burp die Antwort des Servers im selben Tab an. Sie können diese Antwort durch erneutes Klicken auf Forward zurück an den Browser weiterleiten.

Um nachfolgende Anfragen (wie die für ein Favicon) nicht abzufangen, ist es eine gute Praxis, das Abfangen zu deaktivieren, nachdem Sie mit der gewünschten Anfrage fertig sind. Klicken Sie auf die Schaltfläche "Intercept is on", um sie wieder auf "Intercept is off" umzuschalten. Dies ermöglicht es, dass der gesamte andere Traffic ungehindert fließt.

Beobachten der Serverantwort auf die geänderte Anfrage

In diesem Schritt beobachten Sie das Ergebnis Ihrer Aktion sowohl im Browser als auch im Verlauf von Burp Suite. Dies bestätigt, dass der Server die geänderten Daten verarbeitet hat.

Wechseln Sie zuerst zurück zu Ihrem Webbrowser. Die Seite, die zuvor beim Laden feststeckte, sollte nun vollständig geladen sein. Betrachten Sie den auf der Seite angezeigten Inhalt. Er sollte lauten:

You searched for: dvds

Dies bestätigt, dass der Server den geänderten Parameterwert (dvds) und nicht den ursprünglichen (books) erhalten und verarbeitet hat. Sie haben den Server erfolgreich dazu gebracht, andere Inhalte anzuzeigen.

Gehen Sie als Nächstes zurück zu Burp Suite, um eine detailliertere Ansicht zu erhalten. Klicken Sie auf den Tab Proxy und dann auf den Unter-Tab HTTP history. Dieser Tab protokolliert alle Anfragen und Antworten, die den Proxy durchlaufen haben. Sie sollten einen Eintrag für GET /search?q=dvds sehen. Klicken Sie darauf, um die von Ihnen gesendete vollständige Anfrage und die entsprechende Antwort des Servers anzuzeigen, was eine vollständige Aufzeichnung der Interaktion liefert.

Diese einfache Übung demonstriert ein mächtiges Konzept: Vertrauen Sie niemals Daten, die von der Client-Seite kommen, da diese von einem Angreifer mit einem Proxy-Tool wie Burp Suite leicht manipuliert werden können.

Zusammenfassung

In diesem Lab haben Sie die wesentliche Fähigkeit erlernt, eine HTTP-Anfrage mit Burp Proxy im laufenden Betrieb zu modifizieren.

Sie haben erfolgreich:

  • Den Abfangmodus (intercept mode) in Burp Proxy aktiviert.
  • Eine Live-HTTP-Anfrage von einem Browser erfasst.
  • Einen URL-Parameter in der Rohdatenansicht (raw request view) modifiziert.
  • Die manipulierte Anfrage an den Webserver weitergeleitet.
  • Beobachtet, dass die Antwort des Servers auf Ihren modifizierten Daten basierte.

Diese Technik ist ein grundlegender Baustein für das Testen der Sicherheit von Webanwendungen und ermöglicht es Ihnen, durch die Manipulation der Client-Server-Kommunikation eine Vielzahl von Schwachstellen zu untersuchen.