Einleitung
In diesem Lab lernen Sie den Umgang mit Burp Sequencer, einem leistungsstarken Werkzeug innerhalb von Burp Suite zur Analyse der Zufälligkeit von Session-Tokens einer Anwendung. Vorhersehbare Session-Tokens können von einem Angreifer erraten oder berechnet werden, was zu Schwachstellen bei der Session-Übernahme führt.
Am Ende dieses Labs werden Sie in der Lage sein, Login-Anfragen zu erfassen, sie an Burp Sequencer zu senden, das Werkzeug zur Analyse eines bestimmten Tokens zu konfigurieren und die Ergebnisse zu interpretieren, um dessen Zufälligkeit zu bewerten. Dies ist eine grundlegende Fähigkeit für die Sicherheitsbewertung von Webanwendungen.
Eine Login-Anfrage finden, die ein Session-Cookie setzt
In diesem Schritt starten Sie Burp Suite, verwenden den integrierten Browser, um sich bei einer Testanwendung anzumelden, und finden die Anfrage, die eine Sitzung etabliert.
Zuerst müssen Sie Burp Suite starten. Sie finden es normalerweise im Anwendungsmenü oder starten es über das Terminal. Für dieses Lab gehen wir davon aus, dass Burp Suite gestartet werden kann.
- Öffnen Sie das Terminal vom Desktop aus.
- Starten Sie Burp Suite. Der genaue Befehl kann variieren, aber es ist oft ein Skript. Für diese Umgebung gehen wir davon aus, dass es verfügbar ist.
- Sobald Burp Suite geöffnet ist, gehen Sie zum Tab
Proxyund dann zum Unter-TabIntercept. Stellen Sie sicher, dass das Intercepting vorerst ausgeschaltet ist, indem Sie auf die SchaltflächeIntercept is onklicken. - Gehen Sie als Nächstes zum Tab
Proxy->HTTP history. Hier werden alle Anfragen protokolliert. - Klicken Sie auf die Schaltfläche
Open Browser. Dies startet den von Burp vorab konfigurierten Chromium-Browser. - Navigieren Sie im Browser zu einer Login-Seite. Für dieses Lab verwenden wir eine hypothetische Login-Seite. In einem realen Test wäre dies Ihre Zielanwendung.
- Geben Sie beliebige Anmeldedaten ein, z. B.
userals Benutzername undpasswordals Passwort, und klicken Sie auf die Login-Schaltfläche. - Kehren Sie zum Burp Suite-Fenster zurück und schauen Sie sich den Tab
Proxy->HTTP historyan. Sie sollten eine Liste von Anfragen sehen. Finden Sie diePOST-Anfrage an den Login-Endpunkt. Klicken Sie darauf. - Klicken Sie im darunter liegenden Anfrage-/Antwort-Viewer auf den Tab
Response. Suchen Sie nach einemSet-Cookie-Header. Er wird ungefähr so aussehen:
HTTP/1.1 302 Found
...
Set-Cookie: sessionID=q8f...; path=/; HttpOnly
...
Diese sessionID ist das Token, das wir analysieren möchten. Sie haben die Zielanfrage erfolgreich identifiziert.
Rechtsklick auf die Anfrage im Proxy-Verlauf und 'Send to Sequencer'
In diesem Schritt senden Sie die identifizierte Login-Anfrage zur Analyse an das Burp Sequencer-Werkzeug.
Nachdem Sie die POST-Anfrage, die das Session-Cookie setzt, in Ihrem Proxy-Verlauf gefunden haben, müssen Sie sie zur Analyse isolieren.
- Stellen Sie im Tab
Proxy->HTTP historysicher, dass die korrektePOST-Anfrage weiterhin ausgewählt ist. - Klicken Sie mit der rechten Maustaste auf einen beliebigen Eintrag der Anfrage in der Verlaufs-Tabelle. Dies öffnet ein Kontextmenü mit vielen Optionen.
- Navigieren Sie im Kontextmenü zu
Send to Sequencerund klicken Sie darauf.
Diese Aktion sendet eine Kopie der ausgewählten Anfrage an das Sequencer-Werkzeug. Sie werden nun sehen, dass die Kopfzeile des Tabs Sequencer orange wird, was anzeigt, dass ein neues Element empfangen wurde.
- Klicken Sie auf den Tab
Sequencer, um zum Werkzeug zu wechseln. Sie sehen die gerade gesendete Anfrage im Panel "Live Capture Request".
Im Sequencer die Antwort mit dem Cookie auswählen
In diesem Schritt bestätigen Sie, dass Burp Sequencer die Anfrage korrekt ausgeben und eine Antwort mit dem Session-Token empfangen kann.
Im Tab Sequencer sehen Sie die Anfrage, die Sie vom Proxy gesendet haben. Bevor Sie den Speicherort des Tokens konfigurieren können, müssen Sie sicherstellen, dass Sequencer erfolgreich eine Antwort erhält.
- Im Tab
Sequencerschauen Sie sich das Panel "Select Live Capture Request" an. Die Anfrage sollte bereits geladen sein. - Klicken Sie auf die Schaltfläche
Start live captureoben in diesem Panel.
Burp sendet die Anfrage einmal und zeigt die empfangene Antwort an. Dies ermöglicht Ihnen zu überprüfen, ob die Anfrage gültig ist und der Server wie erwartet mit einem Session-Token antwortet. Die Antwort erscheint im Panel unterhalb der Anfrage.
Sie sollten den Set-Cookie-Header in der Antwort sehen, genau wie im Proxy-Verlauf. Dies bestätigt, dass Sequencer für den nächsten Konfigurationsschritt bereit ist. Wenn Sie eine Fehlermeldung erhalten, müssen Sie möglicherweise zurück zum Proxy gehen und eine andere Anfrage finden.
Konfigurieren des Token-Speicherorts in der Antwort
In diesem Schritt teilen Sie Burp Sequencer genau mit, wo das Session-Token in der Antwort des Servers zu finden ist. Dies ist der wichtigste Konfigurationsschritt.
Nachdem Sie die Live-Erfassung gestartet und eine gültige Antwort erhalten haben, müssen Sie den Speicherort des zu analysierenden Tokens definieren.
- Scrollen Sie zum Abschnitt "Token Location Within Response".
- Sie haben zwei Hauptoptionen:
Custom locationundDefined in a cookie. Da das Token in einemSet-Cookie-Header enthalten ist, ist die zweite Option die einfachste. - Klicken Sie auf den Radio-Button neben
Defined in a cookie. - Ein Dropdown-Menü wird aktiv. Klicken Sie darauf und wählen Sie den Namen des zuvor identifizierten Session-Cookies aus (z. B.
sessionID).
Durch die Auswahl des Cookies weisen Sie Sequencer an, den Wert dieses spezifischen Cookies automatisch aus jeder empfangenen Antwort zu extrahieren. Dieser Wert wird auf Zufälligkeit analysiert.
Sobald das Cookie ausgewählt ist, ist die Konfiguration abgeschlossen. Sequencer weiß nun, welche Anfrage gesendet werden soll und wo das Token in der Antwort zu finden ist.
Starten einer Live-Erfassung und Analyse der Zufälligkeitsergebnisse
In diesem Schritt beginnen Sie mit dem Sammeln einer großen Stichprobe von Tokens und verwenden dann die statistische Engine von Sequencer, um deren Zufälligkeit zu analysieren.
Nach Abschluss der Konfiguration sind Sie bereit, mit der Analyse zu beginnen.
- Klicken Sie erneut auf die Schaltfläche
Start live capture. Diesmal sendet Burp die Anfrage kontinuierlich und sammelt die Session-Tokens aus jeder Antwort. - Beobachten Sie das Panel "Live Capture" (Live-Erfassung). Sie werden sehen, wie die Zahlen für
Request count(Anzahl der Anfragen) undTokens collected(Gesammelte Tokens) steigen. - Lassen Sie die Erfassung laufen, bis Sie mindestens 2.000 Tokens gesammelt haben. Für eine gründliche Analyse werden 10.000 bis 20.000 Tokens empfohlen, aber für dieses Lab sind 2.000 ausreichend.
- Sobald Sie genügend Tokens gesammelt haben, klicken Sie auf die Schaltfläche
Pauseund dann auf die SchaltflächeAnalyze now(Jetzt analysieren).
Burp führt eine Reihe von statistischen Tests mit den gesammelten Tokens durch. Die Ergebnisse werden in mehreren Tabs angezeigt.
- Konzentrieren Sie sich auf den Tab
Summary(Zusammenfassung). Dieser gibt Ihnen eine Gesamtbewertung der Token-Qualität. Die wichtigste Kennzahl ist die overall quality of randomness (Gesamtqualität der Zufälligkeit), die in bits of effective entropy (Bits effektiver Entropie) geschätzt wird.
Eine hohe Entropie (z. B. 128 Bits) deutet auf ein sehr starkes, unvorhersehbares Token hin. Eine niedrige Entropie (z. B. weniger als 64 Bits) kann auf eine Schwachstelle hinweisen, die ausgenutzt werden könnte. Die Zusammenfassung gibt Ihnen eine klare Bewertung wie "Excellent" (Ausgezeichnet), "Good" (Gut), "Poor" (Schlecht) oder "Insecure" (Unsicher).
Sie können die anderen Tabs wie Character-level analysis (Zeichenbasierte Analyse) und Bit-level analysis (Bitbasierte Analyse) erkunden, um potenzielle Schwachstellen genauer zu untersuchen.
Zusammenfassung
In diesem Lab haben Sie erfolgreich gelernt, wie Sie Burp Sequencer zur statistischen Analyse von Session-Tokens verwenden.
Sie haben den gesamten Workflow geübt:
- Erfassen einer Login-Anfrage, die ein Cookie setzt, mithilfe des Burp Proxy.
- Senden dieser Anfrage an das Sequencer-Tool.
- Konfigurieren von Sequencer, um das Session-Token in der Antwort des Servers zu lokalisieren.
- Ausführen einer Live-Erfassung, um eine große Stichprobe von Tokens zu sammeln.
- Analysieren der gesammelten Daten, um die effektive Entropie und die Gesamtqualität der Zufälligkeit des Tokens zu bestimmen.
Dieser Prozess ist ein entscheidender Teil jeder Webanwendungs-Sicherheitsprüfung, da er hilft, eine der häufigsten und schwerwiegendsten Schwachstellen zu identifizieren: die vorhersagbare Session-Verwaltung.
