
AuthMatrix ist eine Burp Suite-Erweiterung, die eine einfache Möglichkeit bietet, die Autorisierung in Webanwendungen und Webdiensten zu testen.
AuthMatrix ist eine Erweiterung für Burp Suite, die eine einfache Möglichkeit bietet, die Autorisierung in Webanwendungen und Webdiensten zu testen. Mit AuthMatrix können Tester im Vorfeld gründlich Tabellen mit Benutzern, Rollen und Anfragen für ihre spezifische Zielanwendung definieren. Diese Tabellen sind ähnlich strukturiert wie eine Zugriffskontrollmatrix, die in verschiedenen Bedrohungsmodellierungsmethoden üblich ist.
Sobald die Tabellen zusammengestellt sind, können Tester mit der einfachen Klick-und-los-Oberfläche alle Kombinationen von Rollen und Anfragen ausführen. Die Ergebnisse können mit einer leicht lesbaren, farbcodierten Oberfläche bestätigt werden, die etwaige im System erkannte Autorisierungsschwachstellen anzeigt. Darüber hinaus bietet die Erweiterung die Möglichkeit, Zielkonfigurationen für einfache Regressionstests zu speichern und zu laden.
AuthMatrix kann über den Burp Suite BApp Store installiert werden. Wählen Sie dazu in Burp Suite den Reiter Extender, dann den BApp Store, wählen Sie AuthMatrix aus und klicken Sie auf Installieren.
Für die manuelle Installation laden Sie AuthMatrix.py aus diesem Repository herunter. Wählen Sie dann in Burp Suite den Reiter Extender, klicken Sie auf die Schaltfläche Hinzufügen, ändern Sie den Erweiterungstyp in Python und wählen Sie die AuthMatrix-Python-Datei aus.
AuthMatrix erfordert, dass Burp Suite für die Verwendung von Jython konfiguriert wird. Einfache Anleitungen hierfür finden Sie unter der folgenden URL.
https://portswigger.net/burp/help/extender.html#options_pythonenv
Stellen Sie sicher, dass Sie Jython Version 2.7.0 oder höher verwenden, um die Kompatibilität zu gewährleisten.
Erstellen Sie Rollen für alle Berechtigungsstufen in der Zielanwendung. (Übliche Rollen können Benutzer, Admin und Anonym sein)
Erstellen Sie ausreichend Benutzer, die zu diesen verschiedenen Rollen passen, und aktivieren Sie die Kontrollkästchen für alle Rollen, zu denen der Benutzer gehört. "Einzelbenutzer"-Rollen, die nur den einen Benutzer enthalten, werden automatisch konfiguriert, um das Testen von Ressourcen über verschiedene Benutzer hinweg zu unterstützen. Wenn diese nicht benötigt werden, können Sie diese Rollen jederzeit löschen, indem Sie mit der rechten Maustaste auf die Spalte in der Anforderungstabelle klicken.
Generieren Sie Sitzungstoken für jeden Benutzer über den Reiter Repeater und tragen Sie sie in die entsprechende Spalte in der Benutzertabelle ein. Cookies können über das Rechtsklick-Menü im Repeater direkt an die Benutzer gesendet werden. AuthMatrix analysiert intelligent die Cookie-Zeichenfolge aus der Tabelle und ersetzt/fügt sie bei Bedarf in die Anfragen ein.
HINWEIS: Das Feld Cookies ist optional. Falls das Ziel stattdessen HTTP-Header verwendet, können diese durch Klicken auf die Schaltfläche "New Header" hinzugefügt werden.
Für fortgeschrittenere Konfigurationen, einschließlich automatischer Aktualisierung von Anmeldeinformationen, siehe das Beispiel "Chains for Authenticating Users" unten.
Klicken Sie in einem anderen Bereich von Burp Suite (z. B. Reiter Target, Repeater usw.) mit der rechten Maustaste auf eine Anfrage und wählen Sie "Send to AuthMatrix."
Aktivieren Sie in der Anforderungstabelle von AuthMatrix die Kontrollkästchen für alle Rollen, die berechtigt sind, die jeweilige HTTP-Anfrage zu stellen.
Passen Sie einen Antwort-Regex basierend auf dem erwarteten Antwortverhalten der Anfrage an, um zu bestimmen, ob die Aktion erfolgreich war.
Übliche Regex-Ausdrücke umfassen HTTP-Antwort-Header, Erfolgsmeldungen im Body oder andere Variationen im Seiten-Text.
HINWEIS: Anfragen können über das Rechtsklick-Menü so konfiguriert werden, dass stattdessen ein Fehler-Regex verwendet wird (z. B. Authentifizierte Benutzer sollten niemals einen HTTP 303 erhalten).
Klicken Sie unten auf Ausführen, um alle Anfragen auszuführen, oder klicken Sie mit der rechten Maustaste auf mehrere Anfragen und wählen Sie Ausführen. Beachten Sie, dass die benachbarte Tabelle farbcodierte Ergebnisse anzeigt.
Grün zeigt an, dass keine Schwachstelle erkannt wurde
Rot zeigt an, dass die Anfrage möglicherweise eine Schwachstelle enthält
Blau zeigt an, dass das Ergebnis ein falscher Positiver sein könnte. (Dies bedeutet in der Regel ein ungültiges/abgelaufenes Sitzungstoken oder einen falschen Regex)


Chains bieten eine Möglichkeit, einen statischen oder dynamischen Wert in den Body einer Anfrage zu kopieren. Diese Werte können aus der Antwort einer zuvor ausgeführten Anfrage (mittels eines Regex) oder durch Angabe benutzerspezifischer statischer Zeichenfolgenwerte ermittelt werden.
Die häufigsten Anwendungsfälle für Chains sind:
Befüllen von Anfragen mit gültigen CSRF-Token
Testen neu erstellter IDs/GUIDs auf bereichsübergreifende Autorisierungsprobleme
Automatisieren der Authentifizierung und Sitzungsaktualisierung
Ein Chain-Eintrag hat die folgenden Werte:
Chain-Name: ein beschreibender Name
Quelle: eine statische Benutzerzeichenfolge, die in der Benutzertabelle definiert ist, oder die ID der Quellanfrage in der Anforderungstabelle
Extraktions-Regex: ein Regex zum Extrahieren eines Werts aus der Antwort der Quellanfrage. Dieses Feld wird nur verwendet, wenn im vorherigen Feld eine Anfrage angegeben ist. Falls verwendet, muss es eine Klammergruppe enthalten, die extrahiert werden soll [z. B. (.*)]
Ziele: eine Liste von Anfrage-IDs, in die der Quellwert eingefügt werden soll.
Ersetzungs-Regex: ein Regex, der bestimmt, wo der Quellwert eingefügt werden soll. Dies muss eine Klammergruppe enthalten, die ersetzt werden soll [z. B. (.*)]
Werte verwenden von: legt fest, ob der Quellwert von einem ausgewählten Benutzer (nützlich für benutzerübergreifende Ressourcentests) oder die Werte aller Benutzer verwendet und in die entsprechenden Zielanfragen des jeweiligen Benutzers eingefügt werden sollen (nützlich für Automatisierungsaufgaben wie CSRF-Token-Abruf).
HINWEIS: Anfragen werden in der Reihenfolge der Zeilen ausgeführt. Wenn jedoch eine Chain-Abhängigkeit erkannt wird, führt AuthMatrix die Anfragen in der erforderlichen Reihenfolge aus.



Für bestimmte Ziele kann es einfacher sein, AuthMatrix so zu konfigurieren, dass die Antwortbedingung erkannt wird, wenn eine Anfrage fehlgeschlagen ist. Wenn eine Zielseite beispielsweise bei erfolgreichen Anfragen eindeutige Daten zurückgibt, aber bei nicht autorisierten Aktionen immer einen HTTP 303 zurückgibt.
In diesem Modus validiert AuthMatrix diesen Regex für alle Benutzer, die nicht zu einer erfolgreichen Rolle gehören.
Klicken Sie dazu mit der rechten Maustaste auf die Anfrage und wählen Sie "Toggle Regex Mode". Das Regex-Feld wird lila hervorgehoben, um anzuzeigen, dass AuthMatrix die Anfrage im Fehler-Regex-Modus ausführt.
HINWEIS: Die Erkennung und Hervorhebung von falsch-positiven Ergebnissen funktioniert möglicherweise nicht im Fehler-Regex-Modus.
