Einführung
In der Welt der Web-Sicherheitstests ist Automatisierung der Schlüssel, und Burp Suite ist die bevorzugte Wahl. Um jedoch die Leistungsfähigkeit von Burp für automatisierte Scans voll auszuschöpfen, benötigen Sie die richtigen Plugins. Hier kommt ATOR ins Spiel. Dieses Open-Source-Burp-Plugin wurde entwickelt, um Ihre Scan-Fähigkeiten zu revolutionieren, indem es die Token-Verwaltung und -Ersetzung für verschiedene Szenarien vereinfacht, darunter:
- Verwaltung von Access- und Refresh-Tokens
- Token-Ersetzung in XML- und JSON-Anforderungstexten
- Token-Ersetzung in URL und Cookies
Traditionell erforderte die Durchführung dieser Aufgaben komplexe Makros, Sitzungsregeln oder benutzerdefinierte Extender, insbesondere bei der Arbeit mit JSON- oder XML-Daten. Unser Plugin vereinfacht diesen Prozess und bietet mehrere wichtige Vorteile:
Wichtige Vorteile:
- In-Memory-Token-Ersetzung: Eliminieren Sie doppelte Login-Anfragen, indem Sie Token nahtlos im Speicher ersetzen, was die Scaneffizienz erhöht.
- Benutzerfreundliche UX: Extrahieren Sie einfach Daten aus Antwortnachrichten und ersetzen Sie sie in Anfragen mit regulären Ausdrücken. Diese Flexibilität ist für die Handhabung verschiedener Szenarien mit JSON, XML, Formulardaten und mehr von unschätzbarem Wert.
- Höhere Scangeschwindigkeit: Erzielen Sie schnellere Scangeschwindigkeiten, indem Sie unnötige Login-Anfragen vermeiden. Das Plugin verwendet einen "Trigger Request"-Mechanismus, um Fehlerbedingungen zu identifizieren, wie z.B. einen Antwortcode 401 mit einem Body, der "Unauthorized request" enthält.
Die Inspiration für das Plugin stammt vom ExtendedMacro-Plugin: https://github.com/FrUh/ExtendedMacro
Erste Schritte
Um dieses Plugin zu verwenden, folgen Sie diesen Schritten:
- Installieren Sie Java und Maven.
- Klonen Sie dieses Repository.
- Führen Sie den Befehl "mvn clean install" im Verzeichnis des geklonten Repositorys aus, in dem sich pom.xml befindet.
- Holen Sie die generierte JAR-Datei mit Abhängigkeiten aus dem Ordner "target".
Voraussetzungen
Stellen Sie vor der Verwendung des Plugins Folgendes sicher:
- Stellen Sie sicher, dass die Java-Umgebung auf Ihrem Rechner eingerichtet ist.
- Konfigurieren Sie Burp Suite so, dass der Proxy-Datenverkehr abgehört wird.
- Konfigurieren Sie die Java-Umgebung über die Extender-Registerkarte von BURP.
Für die Verwendung mit einer Testanwendung (installieren Sie diese Testanwendung (Tiredful application) von https://github.com/payatu/Tiredful-API)
Schritte
- Identifizieren Sie die Anfrage, die den Fehler liefert
- Identifizieren Sie das Fehlermuster (Details im Abschnitt unten)
- Extrahieren Sie die Daten aus der Antwort mit Regex (siehe Beispiel-Regex-Werte)
- Ersetzen Sie diese Daten in der Anfrage (verwenden Sie denselben Regex wie in Schritt 3 zusammen mit dem Variablennamen)
Fehlermuster:
Insgesamt gibt es 4 verschiedene Möglichkeiten, die Fehlerbedingung anzugeben.
- Statuscode: 401, 400
- Fehler im Body: Geben Sie einen beliebigen Text aus dem Body-Inhalt an (Beispiel: Access token expired)
- Fehler im Header: Geben Sie einen beliebigen Text aus dem Header an (Beispiel: Unauthorized)
- Freie Form: Verwenden Sie dies, um mehrere Bedingungen anzugeben (st=400 && bd=Access token expired || hd=Unauthorized)
Aufschlüsselung in End-to-End-Tests
- Finden der ungültigen Anfrage:
- http://HOST:PORT/api/v1/exams/MQ==/ mit ungültigem Bearer-Token.
- Identifizieren des Fehlermusters:
- Die obige Anfrage liefert Ihnen 401, hier ist die Fehlerbedingung Statuscode = 401
- Regex mit Anfragedaten abgleichen
- Authorization: Bearer \w* - dieser Regex matcht das übergebene Zugriffstoken.
- Ersetzung – Wie zu ersetzen
- Ersetzen Sie den gematchten Text (Regex aus Schritt 3) mit dem extrahierten Wert (Extraktionskonfiguration wird unten besprochen, sagen wir der Variablenname ist "token")
- Authorization: Bearer token - das extrahierte Token wird ersetzt.
Verwendung mit der Testanwendung
Idee : Nehmen Sie die Anfrage der Tiredful-Anwendung in BURP auf, konfigurieren Sie den ATOR-Extender und prüfen Sie, ob das Token durch ATOR ersetzt wird.
- Öffnen Sie die Testanwendung im Browser, den Sie mit BURP konfiguriert haben
- Generieren Sie einen Token von http://HOST:PORT/handle-user-token/
- Senden Sie die Anfrage http://HOST:PORT/api/v1/exams/MQ==/, indem Sie den Authorization-Bearer-Token übergeben (aus dem obigen Schritt)
- Fügen Sie die ATOR-JAR-Datei als Extender in BURP hinzu
- Klicken Sie im Proxy-Verlauf mit der rechten Maustaste auf die Anfrage (/handle-user-token) und senden Sie sie an den Authentication Token Obtain and Replace Extender
- Fügen Sie einen neuen Eintrag in der Extraktionskonfiguration hinzu, indem Sie den Wert "access_token" auswählen und einen Namen "token" vergeben (es kann jeder Name sein)
Hinweis: Für diese Anwendung reicht eine Anfrage aus, um einen Token zu generieren. Ein Token kann auch nach mehreren Anfragen generiert werden.
- TRIGGER-BEDINGUNG:
- Die Makroschritte werden ausgeführt, wenn die Bedingung erfüllt ist.
- Nach Ausführung der Schritte ersetzen Sie die eingehende Anfrage durch die Werte aus "Pattern" und "Replacement Area", falls angegeben.
- Für unseren Test,
- Fehlerbedingung ist 401 (Statuscode)
- Pattern ist "Authorization: Bearer \w*" (Geben Sie das Regex-Muster an, wie Sie mit Extraktionswerten ersetzen möchten)
- Replacement Area ist "Authentication: Bearer <NAME, den Sie in SCHRITT 4 vergeben haben>"
- Klicken Sie auf die Schaltfläche "Add".
- Für dieses Beispiel reicht eine Ersetzung aus, um die eingehende Anfrage als gültig zu machen, aber Sie können mehrere Ersetzungen für eine einzelne Bedingung hinzufügen.
- Senden Sie die ungültige Anfrage aus dem Repeater und überprüfen Sie den Anfrage-/Antwortverlauf entweder im FLOW/Logger++
- Ungültiger Bearer-Token (http://HOST:PORT/api/v1/exams/MQ==/) vom Repeater liefert die Antwort 401.
- Der Extender matcht diese Bedingung und führt die aufgezeichneten Schritte aus, extrahiert den "access_token"
- Ersetzt das Zugriffstoken (aus Schritt ii) in der tatsächlichen Antwort (vom Repeater) und macht diese ungültige Anfrage gültig.
- In der Repeater-Konsole sehen Sie die Antwort 200 OK.
- Wiederholen Sie Schritt 7 und überprüfen Sie den Ablauf
- Dieses Mal wird der Extender die Schritte nicht aufrufen, da das vorhandene Token gültig ist und dieses daher verwendet wird.
Entwickelt mit
- SWING - Wird zum Hinzufügen von Panels verwendet
Mitwirken
Bitte lesen Sie CONTRIBUTING.md für Details zu unserem Verhaltenskodex und dem Prozess für das Einreichen von Pull-Requests an uns.
Versionierung
v2.3.0
Autoren
Synopsys
Lizenz
Diese Software wird von Synopsys unter der MIT-Lizenz veröffentlicht.
Danksagungen
- https://github.com/FrUh/ExtendedMacro
ExtendedMacro war ein großartiger Anfang – wir haben die Benutzeroberfläche modifiziert, um komplexere Szenarien zu handhaben. Wir haben auch Fehler behoben und die Geschwindigkeit verbessert, indem Token im Speicher ersetzt werden.