
Ein Java-Burp-Plugin, das Text-Clustering auf Antworten durchführt, um Ausreißer/Gruppen basierend auf dem tatsächlichen Inhalt der Server-Antworten zu identifizieren, beispielsweise aus einem Intruder-Lauf.
Eine Burp Suite-Erweiterung zum Clustern von HTTP-Antworten, um Ausreißer zu finden.
Dies ist ein Plugin, über dessen Entwicklung ich schon viele Jahre nachgedacht habe, einfach weil ich mäßig genervt davon bin, wie wir die Ergebnisse von Fuzzing-Angriffen im Burp Intruder analysieren. Wir suchen bei unseren Fuzzing-Angriffen typischerweise nach Änderungen in den Serverantworten. Und wir suchen nach diesen Unterschieden, indem wir Statuscodes, Antwortzeit und Antwortgröße betrachten. All dies sind indirekte Maße für den Inhalt der Antwort. Natürlich haben wir als Pentester keine Zeit, den Inhalt von Tausenden von Serverantworten zu lesen, um nach Unterschieden im Antwortinhalt zu suchen. Aber sicherlich können wir Algorithmen das für uns erledigen lassen.
Hier kommt dieses Plugin ins Spiel. Es verwendet Textclustering-Techniken, um den Inhalt der Antworten zu analysieren und sie basierend auf ihrer Ähnlichkeit in Cluster einzuteilen. Es bietet Ihnen eine weitere Möglichkeit, die Ergebnisse Ihrer Intruder-Fuzzing-Angriffe zu betrachten und schnell diejenigen Serverantworten zu identifizieren, die sich unterscheiden.
Colonel Clustered bietet zwei verschiedene Algorithmen zur Durchführung des Antwort-Clusterings. Der Standardalgorithmus ist relativ schnell, mit einem optionalen tiefergehenden Analysealgorithmus, der sich hervorragend zum Erkennen von Ausreißern eignet, aber nicht gut skaliert. Nun, keiner von beiden skaliert gut, ich würde zögern, 50k Antworten auf dieses Plugin zu werfen. Der schnellere/Standardalgorithmus hat eine Komplexität von O(n^2), während der Deep-Analysis-Algorithmus O(n^3) ist. Behalten Sie das im Hinterkopf, wenn Sie Intruder-Ergebnisse zur Verarbeitung an es senden.
Inhaltsbewusste Tokenisierung: Die Erweiterung inspiziert zunächst den Content-Type-Header jeder Antwort, um die intelligenteste Tokenisierungsstrategie anzuwenden:
Vor-Gruppierung: Um auch bei Tausenden von Antworten schnell zu bleiben, führt die Erweiterung einen einzigen Durchlauf durch, um alle perfekt identischen Antworten zu gruppieren. Sie berechnet einen Hash des Token-Sets jeder Antwort und gruppiert alle Elemente, die denselben Hash teilen. Das bedeutet, dass der teure Clustering-Algorithmus nur auf der viel kleineren Menge eindeutiger Antwortkörper ausgeführt werden muss.
Duale Clustering-Algorithmen: Colonel Clustered bietet zwei verschiedene Clustering-Algorithmen:
Fast Scan (Standard): Ein hochperformanter DBSCAN-basierter Algorithmus läuft automatisch, wenn Sie mehrere Anfragen/Antworten an die Erweiterung senden.
Deep Analysis (Manueller Auslöser): Der ursprüngliche, rechenintensivere hierarchische Clustering-Algorithmus ist über eine Schaltfläche "Deep Analysis" verfügbar. Diese Option ist für Szenarien konzipiert, die eine granularere und potenziell andere Clustering-Perspektive erfordern, und verwendet Average Linkage für verbesserte Cluster-Kohäsion.
Ausreißer-Konsolidierung: Nach dem Clustering wird jede resultierende Gruppe, die nur ein einzelnes eindeutiges Mitglied enthält, als Ausreißer betrachtet. Alle diese Ausreißer werden dann in der UI in einer einzigen, praktischen "Outliers"-Gruppe zusammengefasst.
Diese beiden Algorithmen sollten eine einfache Möglichkeit bieten, Serverantworten automatisch zu identifizieren, die sich im Inhalt unterscheiden, selbst wenn die Antwortgröße ein unzuverlässiges Maß für Antwortunterschiede ist.
Laden der Erweiterung:
Senden von Antworten zur Analyse:
Durchführen einer Deep Analysis (Optional):
Analysieren der Ergebnisse in der Quad-Pane-UI:
Request/Response Pair: Der ursprüngliche Index des Elements.Status Code: Der HTTP-Antwortstatuscode.Length: Die Länge des Antwortkörpers in Bytes.Content-Type: Der Content-Type-Header der Antwort.