Einleitung
In diesem Lab lernen Sie, wie Sie eine der leistungsstarken Funktionen von Burp Intruder nutzen: 'Grep - Extract'. Diese Funktion ermöglicht es Ihnen, Regeln zu definieren, um spezifische Textteile aus den Antworten zu extrahieren, die während eines Intruder-Angriffs empfangen werden. Sie ist unglaublich nützlich, um wertvolle Informationen zu sammeln, die sich mit jeder Anfrage ändern können, wie z. B. CSRF-Tokens, Session-IDs oder andere dynamisch generierte Daten.
Am Ende dieses Labs werden Sie in der Lage sein, Burp Intruder so zu konfigurieren, dass benutzerdefinierte Daten aus Antworten automatisch gefunden und angezeigt werden, wodurch Ihr Workflow für Sicherheitstests effizienter wird. Wir simulieren ein Szenario, in dem wir ein verstecktes Token aus der Antwort einer Webseite extrahieren müssen.
In Intruder > Options, zum Abschnitt 'Grep - Extract' scrollen
In diesem Schritt starten wir Burp Suite und senden eine Beispielanfrage an das Intruder-Tool. Dies bereitet die Konfiguration unserer Extraktionsregeln vor.
Zuerst müssen Sie Burp Suite starten. Sie finden es normalerweise im Anwendungsmenü Ihrer Desktop-Umgebung.
- Öffnen Sie das Terminal auf Ihrem Desktop.
- Starten Sie Burp Suite, indem Sie den Befehl
burpsuiteausführen. Wählen Sie ein temporäres Projekt und klicken Sie auf "Next", dann auf "Start Burp". - Gehen Sie zum Tab Proxy > Intercept und stellen Sie sicher, dass "Intercept is on" aktiviert ist.
- Öffnen Sie den integrierten Chromium-Browser, indem Sie zu Proxy > Intercept gehen und auf "Open Browser" klicken.
- Navigieren Sie im Browser zu einer einfachen Webseite, z. B.
http://portswigger.net. - Die Anfrage wird in Burp Suite abgefangen. Klicken Sie mit der rechten Maustaste irgendwo in den Anfragetextbereich und wählen Sie Send to Intruder.
- Navigieren Sie nun zum Tab Intruder. Sie sehen die gerade gesendete Anfrage.
- Klicken Sie im Tab Intruder auf den Unter-Tab Options.
- Scrollen Sie auf der Seite nach unten, bis Sie den Abschnitt mit der Überschrift Grep - Extract finden. Hier werden wir unsere Regeln zur Datenextraktion konfigurieren.
Sie haben nun erfolgreich den Abschnitt 'Grep - Extract' gefunden und sind bereit, eine Regel hinzuzufügen.
Eine neue Extraktionsregel hinzufügen
In diesem Schritt fügen Sie eine neue, leere Regel zum Abschnitt 'Grep - Extract' hinzu. Diese Regel wird später so konfiguriert, dass sie definiert, welche spezifischen Daten wir aus den Antworten des Servers extrahieren möchten.
Die Funktion 'Grep - Extract' funktioniert, indem eine Liste von Regeln erstellt wird. Jede Regel definiert ein Muster, nach dem in der Antwort gesucht werden soll. Wenn eine Antwort mit einer Regel übereinstimmt, wird der angegebene Teil der Antwort extrahiert und in einer neuen Spalte in der Intruder-Ergebnistabelle angezeigt.
Um eine neue Regel hinzuzufügen, folgen Sie einfach dieser Anweisung:
- Klicken Sie im Abschnitt Grep - Extract, den Sie im vorherigen Schritt gefunden haben, auf die Schaltfläche Add.
Nachdem Sie auf Add geklickt haben, erscheint ein neuer Eintrag in der Regel-Tabelle. Dieser neue Eintrag hat Standardeinstellungen, die wir im nächsten Schritt konfigurieren werden. Der Dialog zur Definition der Extraktion wird ebenfalls angezeigt und ist bereit für Ihre Eingabe.
Start- und Endbegrenzer definieren, um Daten zu extrahieren (z. B. ein verstecktes Token)
In diesem Schritt konfigurieren Sie die gerade hinzugefügte Regel. Wir teilen Burp mit, was extrahiert werden soll, indem wir den Text definieren, der unmittelbar vor und nach unseren Ziel-Daten steht. Dies geschieht mithilfe von Start- und Endbegrenzern.
Für dieses Lab stellen wir uns vor, wir versuchen, ein CSRF-Token aus einer Antwort zu extrahieren, die den folgenden HTML-Schnipsel enthält:
<input type="hidden" name="csrf_token" value="a1b2c3d4e5f6g7h8i9j0" />
Unser Ziel ist es, den Wert a1b2c3d4e5f6g7h8i9j0 zu extrahieren.
- Nachdem Sie im vorherigen Schritt auf "Add" geklickt haben, erscheint ein Dialog "Define extract grep". Wenn er nicht geöffnet ist, klicken Sie auf die neue Regel, die Sie hinzugefügt haben, um ihn zu öffnen.
- Das Tool ruft automatisch die Antwort von der ursprünglichen Anfrage ab, die Sie an Intruder gesendet haben. Sie können sie in der Antwortansicht unten sehen.
- Um die Extraktion zu definieren, geben wir einen Start- und einen Endbegrenzer an. Der zuverlässigste Weg ist die Verwendung der Option "Define start and end".
- Finden Sie einen eindeutigen Textteil in der Antwort, den Sie extrahieren möchten. Für unser Beispiel nehmen wir an, die Antwort enthält den obigen HTML-Schnipsel.
- Heben Sie in der Antwortansicht den Wert hervor, den Sie extrahieren möchten (z. B.
a1b2c3d4e5f6g7h8i9j0). - Die Felder "Start" und "End" werden automatisch ausgefüllt.
- Das Feld Start after expression sollte den Text enthalten, der unmittelbar vor Ihren Ziel-Daten steht. Für unser Beispiel wäre dies
name="csrf_token" value=". - Das Feld End at delimiter sollte den Text enthalten, der unmittelbar nach Ihren Ziel-Daten steht. Für unser Beispiel wäre dies
".
- Das Feld Start after expression sollte den Text enthalten, der unmittelbar vor Ihren Ziel-Daten steht. Für unser Beispiel wäre dies
- Klicken Sie auf OK, um die Regel zu speichern.
Sie haben nun eine Regel konfiguriert, die jede Antwort nach Text zwischen name="csrf_token" value=" und " durchsucht und diesen extrahiert.
Einen Intruder-Angriff ausführen
In diesem Schritt konfigurieren Sie eine grundlegende Payload und starten den Intruder-Angriff. Während des Angriffs wendet Burp die Grep-Extract-Regel auf jede empfangene Antwort an.
Zuerst müssen wir eine Payload-Position festlegen.
- Navigieren Sie zum Unter-Tab Intruder > Positions.
- Die Request-Vorlage wird hier angezeigt. Standardmäßig hat Burp möglicherweise automatisch Payload-Marker (
§...§) um Parameterwerte hinzugefügt. Für diese Übung spielt es keine Rolle, wo sich die Payload befindet, da wir uns auf die Antwort konzentrieren. Sie können die Standard-Marker beibehalten oder sie löschen und irgendwo einen hinzufügen. Sie könnten ihn beispielsweise zu einem Cookie-Wert oder einem Parameter hinzufügen. - Stellen Sie sicher, dass der Angriffstyp auf Sniper eingestellt ist.
Als Nächstes konfigurieren wir eine einfache Payload.
- Navigieren Sie zum Unter-Tab Intruder > Payloads.
- Unter Payload Sets behalten Sie das Payload-Set als
1. - Wählen Sie unter Payload Options aus der Dropdown-Liste Numbers.
- Konfigurieren Sie es so, dass es von
1bis5mit einem Schritt von1läuft. Dies sendet 5 Anfragen.
Starten Sie schließlich den Angriff.
- Klicken Sie auf die Schaltfläche Start attack in der oberen rechten Ecke des Intruder-Tabs.
- Ein neues Fenster "Intruder attack" wird geöffnet, das die Ergebnisse des Angriffs in Echtzeit anzeigt.
Der Angriff läuft nun, und Burp ist damit beschäftigt, Daten basierend auf der von Ihnen erstellten Regel zu extrahieren.
Die extrahierten Daten in den neuen Spalten der Ergebnistabelle anzeigen
In diesem letzten Schritt beobachten Sie die Ergebnisse Ihrer Grep-Extract-Konfiguration. Die Daten, die Sie Burp zum Finden angewiesen haben, sind nun übersichtlich im Fenster der Angriffsergebnisse organisiert.
- Betrachten Sie das Fenster Intruder attack, das im vorherigen Schritt geöffnet wurde.
- Sie sehen eine Tabelle mit Spalten wie "Request", "Position", "Payload", "Status", "Length" usw.
- Scrollen Sie die Tabelle nach rechts. Sie sollten eine neue Spalte sehen. Standardmäßig wird sie Extract 1 heißen. Wenn Sie weitere Regeln hinzugefügt haben, würden diese Extract 2 und so weiter heißen.
- Diese neue Spalte enthält die Daten, die aus jeder Antwort mithilfe der von Ihnen definierten Regel extrahiert wurden.
Wenn die von Ihnen anvisierte Website nicht tatsächlich den csrf_token-String enthält, den wir als Beispiel verwendet haben, kann diese Spalte leer sein. Die Anwesenheit der Spalte bestätigt jedoch, dass Ihre Regel aktiv war. Wenn Sie ein echtes, dynamisches Token auf einer Anmeldeseite anvisiert hätten, wäre diese Spalte nun mit den eindeutigen Tokens aus jeder Antwort gefüllt und bereit für Ihre Analyse oder Verwendung in nachfolgenden Angriffen.
Sie können mit der rechten Maustaste auf die Tabellenüberschrift klicken, um Spalten hinzuzufügen oder zu entfernen, oder auf eine Spaltenüberschrift klicken, um die Ergebnisse basierend auf diesen Daten zu sortieren.
Zusammenfassung
In diesem Lab haben Sie erfolgreich gelernt, wie Sie die Funktion 'Grep - Extract' in Burp Intruder verwenden. Sie haben den gesamten Prozess durchlaufen, vom Senden einer Anfrage an Intruder, dem Hinzufügen und Konfigurieren einer Extraktionsregel mit spezifischen Trennzeichen, dem Ausführen eines Angriffs bis hin zum Anzeigen der gesammelten Daten im Ergebnisfenster.
Diese Fähigkeit ist unerlässlich für die Automatisierung der Erfassung dynamischer Daten aus Webanwendungen, was eine häufige Aufgabe bei Penetrationstests und Sicherheitsanalysen ist. Sie können dieses Wissen nun anwenden, um CSRF-Tokens, Sitzungsidentifikatoren, API-Schlüssel oder andere spezifische Informationen aus HTTP-Antworten während Ihrer Sicherheitsbewertungen zu extrahieren.
