
Burp-Erweiterung zum Testen von Autorisierungsproblemen. Automatisiertes Wiederholen von Anfragen und Extrahieren von Parameterwerten im laufenden Betrieb.
Die Burp-Erweiterung hilft Ihnen, Autorisierungsfehler zu finden. Navigieren Sie einfach mit einem hochprivilegierten Benutzer durch die Webanwendung und lassen Sie den Auth Analyzer Ihre Anfragen für jeden definierten nicht privilegierten Benutzer wiederholen. Mit der Möglichkeit, Parameter zu definieren, kann der Auth Analyzer Parameterwerte automatisch extrahieren und ersetzen. Dadurch können beispielsweise CSRF-Token oder sogar gesamte Sitzungsmerkmale automatisch aus Antworten extrahiert und in weiteren Anfragen ersetzt werden. Jede Antwort wird analysiert und mit einem Bypass-Status versehen.
Es gibt bereits andere Burp-Erweiterungen, die im Grunde ähnliche Aufgaben erfüllen. Die Stärke der Parameterfunktion und der automatischen Wertextraktion ist jedoch der Hauptgrund, sich für Auth Analyzer zu entscheiden. Damit müssen Sie den Inhalt der auszutauschenden Daten nicht kennen. Sie können einfach Ihre Parameter und Cookies definieren, und Auth Analyzer fängt spontan die benötigten Werte ab. Der Auth Analyzer führt keine Vorab-Anfragen durch. Er macht im Grunde dasselbe wie Ihre Webanwendung, nur mit den von Ihnen definierten Benutzerrollen / Sitzungen.
(1) Erstellen oder klonen Sie eine Sitzung für jeden Benutzer, den Sie testen möchten.
(2) Sitzungskonfiguration speichern und laden
(3) Sitzungsmerkmale festlegen (Header(s) und/oder Parameter zum Ersetzen)
(4) Bei Bedarf Filter setzen
(5) Auth Analyzer starten / stoppen / pausieren
(6) Tabellenfilter festlegen
(7) Mit einem anderen Benutzer durch die Web-App navigieren und Ergebnisse der wiederholten Anfragen verfolgen
(8) Tabellendaten als XML oder HTML exportieren
(9) Ursprüngliche und wiederholte Anfragen/Antworten manuell analysieren

Wenn Sie die zu testenden Ressourcen in Ihrer Sitemap haben, ist es sehr einfach und schnell, Ihre Autorisierungstests durchzuführen. Definieren Sie im ersten Schritt die zu testenden Sitzungen. Erweitern Sie dann Ihre Sitemap, wählen Sie die Ressourcen aus und wiederholen Sie die Anfragen über das Kontextmenü. Zusätzlich können Sie Optionen festlegen, welche Anfragen wiederholt werden sollen und welche nicht. Damit können Sie innerhalb von Sekunden Autorisierungstests für eine komplexe Website durchführen.
Der Auth Analyzer bietet die Möglichkeit, Parameter zu definieren, die vor dem Wiederholen der Anfrage für die jeweilige Sitzung ersetzt werden. Der Wert für den angegebenen Parameter kann nach verschiedenen Anforderungen festgelegt werden.
Der Parameterwert wird extrahiert, wenn er in einer Antwort mit einer der folgenden Bedingungen vorkommt:
Eine Antwort mit einem Set-Cookie-Header, dessen Cookie-Name dem definierten Extract Field Name entspricht
Eine HTML-Dokumentantwort enthält ein Eingabefeld mit dem Attribut name, das dem definierten Extract Field Name entspricht
Eine JSON-Antwort enthält einen Schlüssel, der dem Extract Field Name entspricht
Standardmäßig versucht der Auth Analyzer, den Parameterwert aus allen Positionen automatisch zu extrahieren. Wenn Sie jedoch auf das Parametersymbol für die Einstellungen klicken, können Sie die automatische Extraktionspositionen nach Ihren Bedürfnissen einschränken.

Der Parameter wird extrahiert, wenn die Antwort den angegebenen From String und To String in einer Zeile enthält. Der Von-Bis-String kann entweder manuell oder direkt über das entsprechende Kontextmenü festgelegt werden. Markieren Sie einfach das Wort, das Sie in einer Antwort extrahieren möchten, und legen Sie es als From-To Extract für den gewünschten Parameter fest.
Standardmäßig versucht der Auth Analyzer, den Wert aus Header und Body der meisten textuellen Antworten zu extrahieren. Wenn Sie jedoch auf das Parametersymbol für die Einstellungen klicken, können Sie die Von-Bis-Extraktionspositionen nach Ihren Bedürfnissen einschränken.

Ein statischer Parameterwert kann definiert werden. Dies kann beispielsweise für statische CSRF-Token oder Anmeldeinformationen verwendet werden.
Sie werden zur Eingabe aufgefordert, wenn der definierte Parameter in einer Anfrage vorhanden ist. Dies kann beispielsweise verwendet werden, um 2FA-Codes festzulegen.
Wenn ein Wert festgelegt (extrahiert oder vom Benutzer definiert) ist, wird er ersetzt, wenn der entsprechende Parameter in einer Anfrage vorhanden ist. Die Bedingungen für die Parameterersetzung sind:
Der Parameter wird ersetzt, wenn er an einer der folgenden Stellen vorhanden ist:

Im Pfad (z.B. /api/user/99/profile – wenn ein Parameter namens user vorhanden ist, wird der Wert 99 ersetzt)
URL-Parameter (z.B. email=hans.wurst[a]gmail.com)
Cookie-Parameter (z.B. PHPSESSID=mb8rkrcdg8765dt91vpum4u21v)
Body-Parameter entweder URL-kodiert oder Multipart-Form-Daten
JSON-Parameter (z.B. {"email":"hans.wurst[a]gmail.com"})
Standardmäßig wird der Parameterwert an jeder Stelle ersetzt. Wenn Sie jedoch auf das Parametersymbol für die Einstellungen klicken, können Sie die Positionen nach Ihren Bedürfnissen einschränken.

Der definierte Parameter kann vollständig entfernt werden, um beispielsweise CSRF-Prüfmechanismen zu testen.
Definieren Sie den Benutzernamen und das Passwort als statischen Wert. Der Name des Sitzungs-Cookies muss als automatisch extrahieren definiert werden. Stellen Sie sicher, dass Sie ohne gesetztes Sitzungs-Cookie durch die Anwendung navigieren. Melden Sie sich bei der Web-App an. Der Auth Analyzer wiederholt die Anmeldeanfrage mit den statischen Parametern und erhält automatisch die Sitzung über den Set-Cookie-Header. Dieses Cookie wird für weitere Anfragen der angegebenen Sitzung verwendet. Das definierte Cookie wird als Parameter behandelt, daher muss kein Cookie-Header definiert werden.

Hinweis: Sie können die Extraktions- und Ersetzungsbedingungen für einen Parameter einschränken, um Fehlfunktionen beim Extrahieren/Ersetzen zu vermeiden.

Definieren Sie einen Cookie-Header und ein CSRF-Token (mit automatischer Wertextraktion). Der CSRF-Token-Wert wird extrahiert, wenn er in einem HTML-Input-Tag, einem Set-Cookie-Header oder einer JSON-Antwort der angegebenen Sitzung vorhanden ist.

Da die Automatische Extraktion nur bei HTML-Eingabefeldern, JSON-Objekten oder Set-Cookie-Headern funktioniert, müssen wir die generische Extraktionsmethode namens Von-Bis-String verwenden. Mit dieser Extraktionsmethode können wir jeden Wert aus einer Antwort extrahieren, wenn er zwischen einem eindeutigen Start- und End-String liegt. Der Auth Analyzer bietet eine Kontextmenü-Methode, um den From-String und To-String automatisch festzulegen. Markieren Sie einfach den String, den Sie extrahieren möchten, und legen Sie ihn über das Kontextmenü als From-To Extract fest.

Da der Authorization-Header nicht als Parameter behandelt wird (wie es beim Cookie-Header der Fall ist), können wir einen Header-Einfügepunkt verwenden, um das gewünschte Ergebnis zu erzielen. Markieren Sie einfach den Wert, den Sie im angegebenen Header ersetzen möchten, und klicken Sie mit der rechten Maustaste. Der defaultvalue wird verwendet, wenn noch kein Parameterwert extrahiert wurde.

Erstellen Sie einfach so viele Sitzungen, wie Sie benötigen, um mehrere Rollen gleichzeitig zu testen.

Drücken Sie einfach Erneuern im Sitzungsstatus-Panel oder wiederholen Sie die betroffene Anfrage über das Kontextmenü (rechte Maustaste auf den Tabelleneintrag). Hinweis: Die Anmeldeanfrage(n) können markiert und anschließend gefiltert werden.

Ursprüngliche Anfragen können zum Testen idempotenter Operationen (z.B. einer DELETE-Funktion) verworfen werden.

Wenn ein anonymer Benutzer ein gültiges Merkmal (z.B. einen gültigen Cookie-Wert) benötigt, müssen Sie den Header wie gewohnt definieren. Andernfalls können Sie einen Header zum Entfernen wie folgt definieren:

Sie können ganz einfach eine große Anzahl von Endpunkten auf ihre individuellen CORS-Einstellungen testen, indem Sie einen Origin-Header unter Header(s) to replace hinzufügen und im Sitzungs-Panel Test CORS auswählen. Durch die Auswahl von Test CORS ändert der Auth Analyzer die HTTP-Methode auf OPTIONS, bevor die Anfrage wiederholt wird.

Ein bestimmter Parameter kann entfernt werden, indem das Entfernen-Kontrollkästchen aktiviert wird. Dies kann verwendet werden, um beispielsweise den CSRF-Prüfmechanismus zu testen.

Der Auth Analyzer bietet eine integrierte Vergleichsansicht, um die Unterschiede zwischen zwei Antworten zu überprüfen. Markieren Sie einfach die Nachricht, die Sie analysieren möchten, und ändern Sie die Nachrichtenansicht (1). Sie können nun die beiden Anfragen (2) (3) vergleichen. Die integrierte Diff-Funktion berechnet und zeigt die Unterschiede zwischen den beiden Anfragen in Echtzeit an (4)

Erweiterte Diff-Ansicht:

Der Auth Analyzer sollte zwei Arten von Anfragen/Antworten verarbeiten:
Die Antwort enthält einen Wert, der extrahiert werden muss
Die angeforderte Ressource sollte für die definierte(n) Sitzung(en) nicht zugänglich sein
Beispielsweise möchten wir keine statische JavaScript-Datei verarbeiten, da sie für alle zugänglich ist und (hoffentlich) keine geschützten Daten enthält. Um dies zu erreichen, können wir folgende Filtertypen festlegen:
beide Antworten denselben Antwort-Body und denselben Antwortcode habenbeide Antworten denselben Antwortcode haben und beide Antworten +-5% der Antwort-Body-Länge aufweisen