Einleitung
Burp Suite ist eine leistungsstarke Sammlung von Werkzeugen für das Testen der Sicherheit von Webanwendungen. Eine seiner nützlichsten Funktionen ist Burp Comparer, ein Werkzeug zur Durchführung eines visuellen "Diffs" (Vergleichs) beliebiger Datensätze, wie z. B. HTTP-Anfragen oder -Antworten. Dies ist äußerst hilfreich, um subtile Unterschiede zu erkennen, die Schwachstellen aufdecken könnten, wie z. B. Änderungen an Sitzungs-Tokens, versteckten Formularfeldern oder Fehlermeldungen.
In diesem Lab lernen Sie den grundlegenden Workflow der Verwendung von Burp Comparer kennen. Sie werden zwei ähnliche HTTP-Anfragen mit dem Burp Proxy erfassen, sie an das Comparer-Werkzeug senden und dann die hervorgehobenen Unterschiede analysieren.
Zwei ähnliche Anfragen in Ihrer Proxy-Historie finden
In diesem Schritt starten Sie Burp Suite und einen Webbrowser, um zwei ähnliche Login-Anfragen zu generieren. Diese Anfragen werden dann zum Vergleich verwendet.
Starten Sie zuerst die erforderlichen Anwendungen. Sie finden sowohl Burp Suite als auch den Chromium Web Browser auf dem Desktop.
- Doppelklicken Sie auf das Symbol Burp Suite auf dem Desktop, um es zu starten. Wenn ein Dialogfeld erscheint, können Sie die Standardeinstellungen verwenden und auf
Nextund dann aufStart Burpklicken. - Doppelklicken Sie auf das Symbol Chromium Web Browser auf dem Desktop.
Als Nächstes müssen Sie etwas Traffic erfassen. Wir werden versuchen, uns zweimal mit unterschiedlichen Anmeldedaten auf einer fiktiven Website anzumelden.
- Navigieren Sie in Burp Suite zum Tab
Proxyund dort zum Unter-TabIntercept. Wenn der ButtonIntercept is offanzeigt, klicken Sie darauf, sodass er zuIntercept is onwechselt. - Navigieren Sie im Chromium Browser zur folgenden Adresse:
http://www.google.com. Sie werden sehen, wie die Anfrage in Burp Suite "hängen bleibt". - Gehen Sie zurück zu Burp Suite. Sie sehen die erfasste Anfrage. Für dieses Lab müssen wir sie nicht ändern. Klicken Sie einfach auf den Button
Forward, damit die Anfrage weitergeleitet wird. Wiederholen Sie dies ein paar Mal, bis die Google-Startseite in Ihrem Browser geladen ist. - Nun generieren wir unsere Zielanfragen. Suchen Sie im Browser nach "login page example". Klicken Sie auf ein beliebiges Ergebnis, das ein einfaches Login-Formular bereitstellt. Nehmen wir für dieses Beispiel an, Sie haben eine Seite gefunden und für den Benutzernamen
user1und für das Passwortpass1eingegeben. Klicken Sie auf den Login-Button. - Gehen Sie zurück zu Burp Suite und klicken Sie auf
Forward, um die Login-Anfrage passieren zu lassen. - Kehren Sie zum Browser zurück, geben Sie andere Anmeldedaten ein, z. B.
user2undpass2, und klicken Sie erneut auf den Login-Button. - Gehen Sie zurück zu Burp Suite und klicken Sie noch einmal auf
Forward.
Nachdem Sie den Traffic generiert haben, können Sie die Anfragen in Ihrer Proxy-Historie finden.
Gehen Sie in Burp Suite zum Tab Proxy und dann zum Unter-Tab HTTP history. Hier sehen Sie eine Protokolldatei aller Anfragen, die den Proxy durchlaufen haben. Durchsuchen Sie die Liste, um die beiden POST-Anfragen an die von Ihnen verwendete Login-Seite zu finden. Dies sind die beiden Anfragen, die wir in den nächsten Schritten vergleichen werden.
Die erste Anfrage mit der rechten Maustaste anklicken und 'Send to Comparer' auswählen
In diesem Schritt senden Sie die erste der beiden Login-Anfragen an das Comparer-Werkzeug.
Bleiben Sie im Tab Proxy -> HTTP history in Burp Suite, wo Sie die Liste der erfassten Anfragen sehen können.
- Suchen Sie die erste von Ihnen durchgeführte Login-Anfrage (z. B. diejenige, die die Anmeldedaten
user1undpass1enthält). - Klicken Sie mit der rechten Maustaste auf diese spezifische Anfrage in der Historienliste. Dadurch öffnet sich ein Kontextmenü mit vielen Optionen.
- Suchen Sie in diesem Kontextmenü die Option
Send to Comparerund wählen Sie sie aus.
Diese Aktion kopiert die ausgewählte Anfrage und lädt sie in das Comparer-Werkzeug. Der Tab Comparer am oberen Rand des Burp Suite-Fensters sollte nun hervorgehoben oder farblich verändert sein, was darauf hinweist, dass neue Daten empfangen wurden. Sie können auf den Tab Comparer klicken, um zu bestätigen, dass ein Element geladen wurde.
Die zweite Anfrage mit der rechten Maustaste anklicken und 'Send to Comparer' auswählen
Nun senden Sie die zweite Login-Anfrage an das Comparer-Werkzeug. Dies liefert das zweite Element, das für den Vergleich benötigt wird.
- Navigieren Sie zurück zum Tab
Proxy->HTTP history. - Suchen Sie die zweite von Ihnen durchgeführte Login-Anfrage (z. B. diejenige, die die Anmeldedaten
user2undpass2enthält). - Klicken Sie mit der rechten Maustaste auf diese zweite Anfrage in der Historienliste.
- Wählen Sie im erscheinenden Kontextmenü erneut
Send to Compareraus.
Nachdem Sie diese Aktion ausgeführt haben, enthält der Tab Comparer nun beide Anfragen. Wenn Sie zum Tab Comparer wechseln, sehen Sie zwei aufgelistete Elemente, die zum Vergleich bereit sind.
In Comparer die beiden Elemente auswählen und auf 'Words' klicken, um zu vergleichen
Nachdem beide Anfragen in Comparer geladen wurden, sind Sie nun bereit, den eigentlichen Vergleich durchzuführen.
- Navigieren Sie zum Tab
Comparerin Burp Suite. - Oben in der Comparer-Oberfläche sehen Sie eine Liste der von Ihnen gesendeten Elemente. Es sollten zwei Elemente angezeigt werden.
- Wählen Sie beide Elemente aus. Dies können Sie tun, indem Sie zuerst auf das erste Element klicken und dann die
Ctrl-Taste gedrückt halten und auf das zweite Element klicken. Beide sollten nun hervorgehoben sein. - Unten im Fenster sehen Sie Vergleichsoptionen. Die beiden Hauptoptionen sind
WordsundBytes. DerWords-Vergleich ist ideal für textbasierte Daten wie HTTP-Anfragen, da er Unterschiede Wort für Wort analysiert, was die Ausgabe sehr lesbar macht. DerBytes-Vergleich führt einen Byte-Level-Diff durch, der besser für Binärdaten geeignet ist. - Klicken Sie auf die Schaltfläche
Words, um den Vergleich zu starten.
Burp Suite verarbeitet nun die beiden Anfragen und bereitet einen visuellen Vergleich nebeneinander vor.
Die hervorgehobenen Unterschiede zwischen den Anfragen analysieren
In diesem letzten Schritt analysieren Sie die Ergebnisse des Vergleichs, um zu verstehen, was sich zwischen den beiden Anfragen geändert hat.
Nachdem Sie im vorherigen Schritt auf Words geklickt haben, wird das Hauptfenster im Comparer-Tab aktualisiert, um die beiden Anfragen nebeneinander anzuzeigen. Burp Comparer verwendet ein Farbschema, um Unterschiede leicht erkennbar zu machen:
- Gelb: Hebt geänderte Daten hervor.
- Rosa: Hebt hinzugefügte Daten hervor.
- Blau: Hebt gelöschte Daten hervor.
Scrollen Sie durch die beiden Anfragefenster. Die Scrollbalken an der Seite haben ebenfalls Farbkennzeichnungen, die Ihnen helfen, schnell zu den Speicherorten der Änderungen zu springen.
Sie sollten die Unterschiede im Anfragekörper klar erkennen können. Die Werte für die Parameter Benutzername und Passwort (user1 vs. user2 und pass1 vs. pass2) werden gelb hervorgehoben, was darauf hinweist, dass sie geändert wurden.
Abhängig von der Webanwendung können Sie auch andere Unterschiede feststellen. Zum Beispiel:
- Der
Content-Length-Header könnte unterschiedlich sein, wenn die neuen Parameterwerte eine andere Länge haben. - Ein
Cookie-Header könnte sich geändert haben, wenn der Server eine neue Sitzungs-ID zugewiesen hat.
Durch die Analyse dieser hervorgehobenen Unterschiede können Sie schnell verstehen, wie eine Webanwendung auf unterschiedliche Eingaben reagiert. Dies ist eine grundlegende Technik zur Entdeckung einer Vielzahl von Sicherheitslücken.
Zusammenfassung
In diesem Lab haben Sie den grundlegenden Workflow zur Verwendung von Burp Comparer zur Analyse von HTTP-Anfragen gelernt. Sie haben erfolgreich Netzwerkverkehr generiert, zwei ähnliche Anfragen aus Ihrer Proxy-Historie isoliert und sie an das Comparer-Tool gesendet. Durch die Durchführung eines wortbasierten Vergleichs konnten Sie die genauen Unterschiede zwischen den beiden Anfragen visuell identifizieren.
Diese Fähigkeit ist für viele Aufgaben im Bereich der Web-Sicherheitstests unerlässlich, wie z. B. die Analyse von Authentifizierungsmechanismen, das Testen auf Parameter-Tampering und die Identifizierung potenzieller Injektionspunkte durch Beobachtung, wie sich die Antwort einer Anwendung mit unterschiedlichen Eingaben ändert.
