Einleitung
Burp Suite ist eine leistungsstarke Plattform für das Testen der Sicherheit von Webanwendungen. Eines seiner vielseitigsten Werkzeuge ist Burp Intruder, mit dem Sie angepasste Angriffe auf Webanwendungen automatisieren können. Intruder verfügt über verschiedene Angriffstypen, die jeweils für unterschiedliche Testszenarien konzipiert sind.
Der Angriffstyp Pitchfork wird verwendet, wenn Sie mehrere Parameter gleichzeitig mit unterschiedlichen, aber verwandten Payloads testen müssen. Er verwendet für jede markierte Position eine separate Payload-Liste. Während des Angriffs nimmt Intruder die erste Payload aus der ersten Liste und kombiniert sie mit der ersten Payload aus der zweiten Liste, dann die zweite mit der zweiten und so weiter. Dies ist ideal für das Testen von Dingen wie einer Liste bekannter Benutzername- und Passwortkombinationen.
In diesem Lab lernen Sie, wie Sie einen Pitchfork-Angriff in Burp Intruder gegen ein einfaches Anmeldeformular konfigurieren und ausführen.
Senden einer Anfrage mit zwei Parametern an Intruder
In diesem Schritt starten Sie Burp Suite, erfassen eine Login-Anfrage und senden sie an das Intruder-Tool zur Modifikation. Die Laborumgebung hat bereits eine einfache Webanwendung für Sie gestartet, die Sie testen können.
Öffnen Sie zuerst ein Terminal vom Desktop aus und starten Sie Burp Suite. Sie finden es normalerweise im Anwendungsmenü oder starten es über die Befehlszeile. Für dieses Labor starten wir es vom Terminal aus.
burpsuite
Wählen Sie im Startassistenten "Temporäres Projekt" aus und klicken Sie auf "Weiter", dann auf "Burp starten".
Sobald Burp Suite geöffnet ist, wechseln Sie zum Tab Proxy und dann zum Unter-Tab Intercept. Klicken Sie auf die Schaltfläche "Browser öffnen". Dies startet einen Chromium-Browser, der vorkonfiguriert ist, um mit dem Proxy von Burp zu arbeiten.
Navigieren Sie im Burp-Browser zur Zielanwendung, indem Sie die folgende URL eingeben:
http://127.0.0.1:8000
Sie sehen ein einfaches Anmeldeformular. Kehren Sie zum Burp Suite-Fenster zurück und schalten Sie die Interzeption aus, indem Sie auf die Schaltfläche "Intercept is on" klicken, sodass sie zu "Intercept is off" wechselt. Dies ermöglicht es Anfragen, frei zur Anwendung zu fließen.
Kehren Sie nun zum Browser zurück. Geben Sie für den Benutzernamen test und für das Passwort test ein und klicken Sie dann auf "Submit".
Kehren Sie zum Burp Suite-Fenster zurück und navigieren Sie zum Tab Proxy > HTTP history. Sie sollten eine POST /login-Anfrage in der Verlaufsliste sehen. Klicken Sie mit der rechten Maustaste auf diese Anfrage und wählen Sie "An Intruder senden".
Diese Aktion sendet eine Kopie der Anfrage an das Intruder-Tool, wo Sie den Angriff konfigurieren können. Sie sollten sehen, dass der Tab Intruder hervorgehoben ist.
Hinzufügen von Payload-Markierungen zu beiden Parametern
In diesem Schritt definieren Sie die Positionen in der Anfrage, an denen Intruder seine Payloads platzieren soll. Für einen Pitchfork-Angriff müssen Sie jeden Parameterwert markieren, den Sie fuzzing möchten.
Navigieren Sie zum Tab Intruder und dann zum Unter-Tab Positions. Sie sehen die erfasste POST /login-Anfrage.
Burp Intruder identifiziert oft automatisch potenzielle Payload-Positionen und markiert sie mit §-Symbolen. Für dieses Labor möchten wir die Positionen präzise steuern. Klicken Sie zuerst auf die Schaltfläche Clear § auf der rechten Seite, um alle Standardmarkierungen zu entfernen.
Der Anfragekörper am unteren Rand des Fensters sieht wie folgt aus:
username=test&password=test
Wir möchten Payloads in die Werte sowohl des username- als auch des password-Parameters einfügen.
- Heben Sie im Anfrageeditor den Wert
testfür den Parameterusernamehervor. - Klicken Sie auf die Schaltfläche
Add §auf der rechten Seite. Der Parameter sollte nun wie folgt aussehen:username=§test§. - Heben Sie als Nächstes den Wert
testfür den Parameterpasswordhervor. - Klicken Sie erneut auf die Schaltfläche
Add §. Der Parameter sollte nun wie folgt aussehen:password=§test§.
Ihr Anfragekörper sollte nun zwei markierte Positionen haben:
username=§test§&password=§test§
Diese Markierungen teilen Intruder genau mit, wo die Payloads aus den entsprechenden Payload-Sets platziert werden sollen.
Festlegen des Angriffstyps auf 'Pitchfork'
In diesem Schritt wählen Sie den Angriffstyp Pitchfork aus. Dies ist die entscheidende Einstellung, die das von uns zu testende gekoppelte Payload-Injektionsverhalten ermöglicht.
Während Sie sich noch im Tab Intruder > Positions befinden, suchen Sie das Dropdown-Menü "Attack type" (Angriffstyp) am oberen Bildschirmrand. Es ist standardmäßig wahrscheinlich auf Sniper eingestellt.
Klicken Sie auf das Dropdown-Menü. Sie sehen vier Optionen:
- Sniper: Verwendet einen einzelnen Payload-Satz und durchläuft jede Position einzeln.
- Battering ram: Verwendet einen einzelnen Payload-Satz und platziert denselben Payload gleichzeitig an allen Positionen.
- Pitchfork: Verwendet mehrere Payload-Sätze. Es koppelt die erste Payload aus Satz 1 mit der ersten aus Satz 2, die zweite mit der zweiten und so weiter.
- Cluster bomb: Verwendet mehrere Payload-Sätze und testet jede mögliche Kombination von Payloads.
Für unser Szenario, das das Testen von Benutzername/Passwort-Paaren beinhaltet, ist Pitchfork die richtige Wahl. Wählen Sie Pitchfork aus der Liste aus.
Sobald Sie Pitchfork auswählen, werden Sie feststellen, dass sich die Benutzeroberfläche auf diesem Bildschirm nicht wesentlich ändert, aber Burp ist nun darauf vorbereitet, zwei separate Payload-Listen zu verarbeiten, die den beiden Payload-Markierungen entsprechen, die Sie im vorherigen Schritt gesetzt haben.
Konfigurieren von zwei separaten Payload-Listen im Payloads-Tab
In diesem Schritt konfigurieren Sie die beiden Listen von Payloads, die der Pitchfork-Angriff verwenden wird. Die erste Liste enthält Benutzernamen und die zweite die entsprechenden Passwörter.
Navigieren Sie zum Unter-Tab Payloads innerhalb des Tabs Intruder.
Da Sie den Angriffstyp Pitchfork ausgewählt und zwei Payload-Positionen haben, sehen Sie ein Dropdown-Menü "Payload set" (Payload-Satz). Dies ermöglicht es Ihnen, jede Payload-Liste unabhängig zu konfigurieren.
Konfigurieren von Payload-Satz 1 (Benutzernamen):
- Stellen Sie sicher, dass das Dropdown-Menü "Payload set" auf
1eingestellt ist. - Der "Payload type" (Payload-Typ) sollte "Simple list" (Einfache Liste) sein.
- Klicken Sie im Abschnitt "Payload Options" (Payload-Optionen) unten auf die Schaltfläche
Clear(Löschen), um alle Standardelemente zu entfernen. - Klicken Sie auf die Schaltfläche
Add(Hinzufügen) und geben Sie nacheinander die folgenden Benutzernamen ein:userguestadmintest
Konfigurieren von Payload-Satz 2 (Passwörter):
- Wählen Sie nun
2aus dem Dropdown-Menü "Payload set" aus. - Stellen Sie erneut sicher, dass der "Payload type" "Simple list" ist.
- Klicken Sie auf die Schaltfläche
Clear, um die Liste zu leeren. - Klicken Sie auf die Schaltfläche
Addund geben Sie die folgenden Passwörter ein, die den Benutzernamen in der ersten Liste entsprechen:userpassguestpassword123test
Sie haben nun zwei unterschiedliche Payload-Listen konfiguriert. Der Pitchfork-Angriff wird sie in der Reihenfolge koppeln: (user, userpass), (guest, guest), (admin, password123) und (test, test). Die Gesamtzahl der Anfragen beträgt 4, was der Größe Ihrer Listen entspricht.
Ausführen des Angriffs und Beobachten der gekoppelten Payload-Injektion
In diesem letzten Schritt starten Sie den Angriff und analysieren die Ergebnisse, um den Pitchfork-Angriff in Aktion zu sehen.
Mit konfiguriertem Angriffstyp und Payloads sind Sie bereit zu beginnen. Klicken Sie in der oberen rechten Ecke des Tabs Intruder auf die Schaltfläche "Start attack" (Angriff starten).
Ein neues Fenster "Intruder attack (1)" öffnet sich und zeigt die Ergebnisse in Echtzeit an. Beobachten Sie die Ergebnistabelle. Sie sehen Spalten für "Payload 1" und "Payload 2".
Beachten Sie, wie die Payloads genau so gekoppelt sind, wie Sie sie konfiguriert haben:
- Anfrage 1 verwendet
userunduserpass. - Anfrage 2 verwendet
guestundguest. - Anfrage 3 verwendet
adminundpassword123. - Anfrage 4 verwendet
testundtest.
Schauen Sie sich nun die Spalten "Status" und "Length" (Länge) an. Die meisten Anfragen haben wahrscheinlich denselben Statuscode (z. B. 200) und dieselbe Antwortlänge, was auf einen fehlgeschlagenen Anmeldeversuch hindeutet. Eine Anfrage sollte sich jedoch abheben. Die Anfrage mit dem Payload-Paar admin und password123 ist die korrekte Anmeldeinformationskombination. Sie sollten für diese Anfrage eine andere Antwortlänge sehen, die eine andere Serverantwort anzeigt (z. B. eine Meldung "Login successful!" (Anmeldung erfolgreich!)).
Beispiel für erwartete Ergebnisse:
| Request | Payload 1 | Payload 2 | Status | Length |
|---|---|---|---|---|
| 1 | user | userpass | 200 | 450 |
| 2 | guest | guest | 200 | 450 |
| 3 | admin | password123 | 200 | 452 |
| 4 | test | test | 200 | 450 |
Durch die Beobachtung dieses Unterschieds haben Sie erfolgreich die gültigen Anmeldeinformationen mithilfe eines Pitchfork-Angriffs identifiziert. Sie können das Angriffsfenster nun schließen.
Zusammenfassung
In diesem Lab haben Sie erfolgreich einen Pitchfork-Angriff mit Burp Intruder konfiguriert und ausgeführt.
Sie haben gelernt, wie Sie:
- Eine Webanfrage mit Burp Proxy abfangen und an Intruder senden.
- Payload-Marker manuell auf mehreren Parameterpositionen setzen.
- Den Angriffstyp
Pitchforkauswählen, der für verwandtes Fuzzing mehrerer Parameter konzipiert ist. - Zwei separate und entsprechende Payload-Listen für die Benutzername- und Passwortparameter konfigurieren.
- Den Angriff starten und die Ergebnisse analysieren, um Anomalien zu identifizieren und erfolgreich die richtigen Anmeldeinformationen zu finden, indem Sie die gekoppelte Payload-Injektion beobachten.
Der Pitchfork-Angriff ist eine wertvolle Technik zum Testen von Szenarien, in denen Daten in mehreren Parametern verknüpft sind, wie z. B. Benutzernamen und Passwörter oder andere gekoppelte Datensätze.
