HTTP-Antworten im laufenden Betrieb mit Burp Proxy ändern

Beginner
Jetzt üben

Einleitung

Burp Suite ist eine leistungsstarke Plattform für Sicherheitstests von Webanwendungen. Eine seiner Kernkomponenten ist der Burp Proxy, der als Man-in-the-Middle zwischen Ihrem Browser und dem Ziel-Webserver fungiert. Dies ermöglicht es Ihnen, den rohen Datenverkehr abzufangen, zu inspizieren und zu modifizieren, der in beide Richtungen fließt.

Während das Abfangen von Anfragen eine gängige Aufgabe ist, ist das Abfangen und Modifizieren von Antworten für Sicherheitstests ebenso wichtig. Es ermöglicht Ihnen zu testen, wie die Client-seitige Anwendung unerwartete oder manipulierte Daten vom Server verarbeitet.

In diesem Lab lernen Sie, wie Sie den Burp Proxy konfigurieren, um Server-Antworten abzufangen und den HTML-Inhalt einer Webseite zu modifizieren, bevor er in Ihrem Browser angezeigt wird. Wir werden für diese Demonstration einen einfachen lokalen Webserver verwenden.

In diesem Schritt konfigurieren Sie Burp Suite, um das Abfangen von Antworten des Webservers zu aktivieren. Standardmäßig fängt der Burp Proxy nur ausgehende Anfragen vom Browser ab.

Zuerst müssen Sie Burp Suite starten. Sie finden es im Anwendungsmenü oder durch Suchen danach.

Sobald Burp Suite geöffnet ist:

  1. Klicken Sie auf den Tab Proxy am oberen Rand des Fensters.
  2. Klicken Sie innerhalb des Proxy-Tabs auf den Unter-Tab Options.
  3. Scrollen Sie durch die Optionen, bis Sie den Abschnitt mit dem Titel Intercept Server Responses finden.

Dieser Abschnitt enthält die Einstellungen, die steuern, ob und wie der Burp Proxy eingehende HTTP-Antworten abfängt. Sie haben nun den notwendigen Konfigurationsbereich für den nächsten Schritt gefunden.

Aktivieren Sie das Kontrollkästchen 'Intercept responses based on the following rules'

In diesem Schritt aktivieren Sie die Funktion zum Abfangen von Antworten.

Im Abschnitt Intercept Server Responses, den Sie im vorherigen Schritt gefunden haben, sehen Sie ein Kontrollkästchen.

  1. Klicken Sie auf das Kontrollkästchen neben der Beschriftung Intercept responses based on the following rules.

Sobald Sie dieses Feld aktivieren, wird der Burp Proxy so konfiguriert, dass er Server-Antworten abfängt, die den darunter definierten Regeln entsprechen. Die Standardregel Is a response to a request that was intercepted wird automatisch hinzugefügt und ist für unsere Zwecke perfekt. Diese Regel weist Burp an, eine Antwort nur dann abzufangen, wenn ihre entsprechende Anfrage ebenfalls vom Proxy abgefangen wurde. Dies verhindert, dass Burp bei jeder einzelnen Antwort anhält, wie z. B. bei Hintergrundbildern oder Skripten, und konzentriert sich nur auf den Datenverkehr, den Sie aktiv inspizieren.

Eine Anfrage abfangen und weiterleiten

In diesem Schritt verwenden Sie den integrierten Browser von Burp, um eine Anfrage an unseren lokalen Webserver zu stellen und diese abzufangen.

  1. Navigieren Sie zum Unter-Tab Proxy > Intercept.
  2. Stellen Sie sicher, dass auf dem Button Intercept is on steht. Wenn dort "Intercept is off" steht, klicken Sie darauf, um das Abfangen zu aktivieren.
  3. Klicken Sie auf den Button Open Browser. Ein neues Chromium-Browserfenster, das vorkonfiguriert ist, um den Burp Proxy zu verwenden, wird geöffnet.
  4. Geben Sie in die Adressleiste des Browsers http://127.0.0.1:8000 ein und drücken Sie Enter.

Der Browser scheint unendlich zu laden. Das liegt daran, dass Burp die HTTP-Anfrage abgefangen hat. Wechseln Sie zurück zum Burp Suite-Fenster. Im Tab Proxy > Intercept sehen Sie die rohe HTTP-Anfrage:

GET / HTTP/1.1
Host: 127.0.0.1:8000
... (other headers)

Dies ist die Anfrage von Ihrem Browser an den lokalen Server. Um sie an den Server weiterzuleiten, klicken Sie auf den Button Forward. Nachdem Sie die Anfrage weitergeleitet haben, wartet Burp nun darauf, die vom Server zurückkommende Antwort abzufangen.

Den HTML-Body in der abgefangenen Antwort ändern

In diesem Schritt bearbeiten Sie den Inhalt der HTTP-Antwort, bevor sie an den Browser gesendet wird.

Da Sie im vorherigen Schritt das Abfangen von Antworten aktiviert und die Anfrage weitergeleitet haben, enthält der Tab Proxy > Intercept nun die Antwort des Servers. Sie wird ungefähr so aussehen:

HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/3.10.6
Date: ...
Content-type: text/html
Content-Length: ...

<h1>Welcome to the Original Page!</h1><p>This is the content you will modify.</p>

Der Haupttextbereich ist editierbar. Hier können Sie die Antwort im laufenden Betrieb ändern.

  1. Suchen Sie im Textbereich des Antwortkörpers die Zeile <h1>Welcome to the Original Page!</h1>.
  2. Ändern Sie den Text zu <h1>Welcome to the Modified Page!</h1>.
  3. Sie können auch den Text des Absatzes ändern, wenn Sie möchten, zum Beispiel zu <p>This content has been changed by Burp Proxy.</p>.

Sie haben nun die Antwort des Servers verändert. Sie wird immer noch von Burp Proxy gehalten und hat den Browser noch nicht erreicht.

Die geänderte Antwort weiterleiten und die Änderung im Browser beobachten

In diesem letzten Schritt senden Sie die geänderte Antwort an den Browser und sehen das Ergebnis.

Die geänderte Antwort wartet immer noch im Tab Proxy > Intercept.

  1. Klicken Sie ein letztes Mal auf den Button Forward. Dadurch wird die Antwort freigegeben und Ihre geänderte Version an den Browser gesendet.
  2. Wechseln Sie zurück zum Burp Browser-Fenster, das zuvor geladen wurde.

Die Seite wird nun fertig geladen, zeigt aber anstelle des ursprünglichen Inhalts den von Ihnen eingegebenen Text an. Sie sollten Folgendes sehen:

Welcome to the Modified Page! This content has been changed by Burp Proxy.

Herzlichen Glückwunsch! Sie haben erfolgreich eine HTTP-Antwort abgefangen, deren Inhalt während der Übertragung geändert und die Änderung im Browser beobachtet. Dies demonstriert eine grundlegende Fähigkeit für Sicherheitstests von Webanwendungen. Sie können das Abfangen nun deaktivieren, indem Sie auf den Button "Intercept is on" klicken.

Zusammenfassung

In diesem Lab haben Sie praktische Erfahrungen mit einem Schlüsselmerkmal von Burp Suite gesammelt. Sie haben gelernt, wie Sie:

  • Burp Proxy so konfigurieren, dass Serverantworten abgefangen werden, eine Funktion, die standardmäßig deaktiviert ist.
  • Den Workflow des Abfangens einer Anfrage, deren Weiterleitung und des anschließenden Auffangens der entsprechenden Antwort befolgen.
  • Den Body einer HTTP-Antwort in Echtzeit ändern, bevor sie den Browser erreicht.
  • Die direkten Auswirkungen der Antwortmodifikation auf die gerenderte Webseite beobachten.

Diese Technik ist grundlegend für die Web-Sicherheit, um zu testen, wie der Front-End-Code einer Webanwendung unerwartete oder bösartige Daten vom Server verarbeitet, und um potenziell Schwachstellen wie Cross-Site Scripting (XSS) oder fehlerhafte Zugriffskontrollen aufzudecken.