Analyse der Zufälligkeit von Session-Tokens in Burp Sequencer

Beginner
Jetzt üben

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.

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.

  1. Öffnen Sie das Terminal vom Desktop aus.
  2. 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.
  3. Sobald Burp Suite geöffnet ist, gehen Sie zum Tab Proxy und dann zum Unter-Tab Intercept. Stellen Sie sicher, dass das Intercepting vorerst ausgeschaltet ist, indem Sie auf die Schaltfläche Intercept is on klicken.
  4. Gehen Sie als Nächstes zum Tab Proxy -> HTTP history. Hier werden alle Anfragen protokolliert.
  5. Klicken Sie auf die Schaltfläche Open Browser. Dies startet den von Burp vorab konfigurierten Chromium-Browser.
  6. 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.
  7. Geben Sie beliebige Anmeldedaten ein, z. B. user als Benutzername und password als Passwort, und klicken Sie auf die Login-Schaltfläche.
  8. Kehren Sie zum Burp Suite-Fenster zurück und schauen Sie sich den Tab Proxy -> HTTP history an. Sie sollten eine Liste von Anfragen sehen. Finden Sie die POST-Anfrage an den Login-Endpunkt. Klicken Sie darauf.
  9. Klicken Sie im darunter liegenden Anfrage-/Antwort-Viewer auf den Tab Response. Suchen Sie nach einem Set-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.

  1. Stellen Sie im Tab Proxy -> HTTP history sicher, dass die korrekte POST-Anfrage weiterhin ausgewählt ist.
  2. Klicken Sie mit der rechten Maustaste auf einen beliebigen Eintrag der Anfrage in der Verlaufs-Tabelle. Dies öffnet ein Kontextmenü mit vielen Optionen.
  3. Navigieren Sie im Kontextmenü zu Send to Sequencer und 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.

  1. Klicken Sie auf den Tab Sequencer, um zum Werkzeug zu wechseln. Sie sehen die gerade gesendete Anfrage im Panel "Live Capture Request".

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.

  1. Im Tab Sequencer schauen Sie sich das Panel "Select Live Capture Request" an. Die Anfrage sollte bereits geladen sein.
  2. Klicken Sie auf die Schaltfläche Start live capture oben 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.

  1. Scrollen Sie zum Abschnitt "Token Location Within Response".
  2. Sie haben zwei Hauptoptionen: Custom location und Defined in a cookie. Da das Token in einem Set-Cookie-Header enthalten ist, ist die zweite Option die einfachste.
  3. Klicken Sie auf den Radio-Button neben Defined in a cookie.
  4. 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.

  1. Klicken Sie erneut auf die Schaltfläche Start live capture. Diesmal sendet Burp die Anfrage kontinuierlich und sammelt die Session-Tokens aus jeder Antwort.
  2. Beobachten Sie das Panel "Live Capture" (Live-Erfassung). Sie werden sehen, wie die Zahlen für Request count (Anzahl der Anfragen) und Tokens collected (Gesammelte Tokens) steigen.
  3. 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.
  4. Sobald Sie genügend Tokens gesammelt haben, klicken Sie auf die Schaltfläche Pause und dann auf die Schaltfläche Analyze now (Jetzt analysieren).

Burp führt eine Reihe von statistischen Tests mit den gesammelten Tokens durch. Die Ergebnisse werden in mehreren Tabs angezeigt.

  1. 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.