
Extension fügt einen neuen Tab in Burp Suite namens Extractor hinzu
Lade Googles GSON-Bibliothek von Maven herunter
(http://central.maven.org/maven2/com/google/code/gson/gson/2.8.2/gson-2.8.2.jar)
wget http://central.maven.org/maven2/com/google/code/gson/gson/2.8.2/gson-2.8.2.jar
Wähle in Burps Extender/Options/Java Environment den Ordner aus, in den du Googles GSON-Bibliothek heruntergeladen hast.
Füge die Erweiterung über den Reiter Extender/Extensions von Burp hinzu. (Die Erweiterung ist die JAR-Datei im Ordner dist des Repos.)
Klone das Repository.
Speichere Burps Schnittstellendateien in einem neuen Ordner, indem du zu Burps Reiter Extender/APIs gehst und auf den Button Save interface files klickst. Kopiere diese Dateien anschließend in das Verzeichnis src/burp des geklonten Repos.
Lade Googles GSON-Bibliothek von Maven herunter
(http://central.maven.org/maven2/com/google/code/gson/gson/2.8.2/gson-2.8.2.jar)
wget http://central.maven.org/maven2/com/google/code/gson/gson/2.8.2/gson-2.8.2.jar
Aus dem Extractor-Verzeichnis:
4. mkdir build
5. javac -cp gson-2.8.2.jar -d build src/burp/*.java
6. jar cf extractor.jar -C build burp
Lade anschließend die Datei extractor.jar im Reiter Extender von Burp. (Du musst Burps Pfad außerdem auf den Ordner zeigen lassen, in dem du die GSON-Bibliothek gespeichert hast: Burp Extender > Options > Java Environment)
Es sollte ein neuer Reiter namens Extractor zu Burp hinzugefügt werden.

Diese Erweiterung fügt Burp Suite einen neuen Reiter namens Extractor hinzu.
In diesem Reiter kannst du Knoten zu einem Baum hinzufügen, um zu beschreiben, wie die Daten in Anfragen oder Antworten aussehen. Jedes Blatt in diesem Baum erzeugt überall dort einen neuen Reiter, wo eine Anfrage oder Antwort angezeigt wird, wobei die Anfragedaten gemäß allen übergeordneten Knoten bis zu dem jeweiligen Blatt transformiert werden.
Wenn der Body der Anfrage beispielsweise ein XML-Payload mit einem bestimmten Tag ist, das einen Base64-kodierten String enthält, würde der Baum wie folgt aussehen:

Mit dem obigen Aufbau enthält nun jede Anfrage und Antwort einen Reiter namens Body>XML:tag_name>Base64. Dieser Reiter sollte die Base64-dekodierten Daten enthalten, die im XML-Tag tag_name des Anfrage-Bodys stehen. Wenn du die Daten in diesem Reiter änderst, werden die Daten Base64-kodiert und wieder in dasselbe XML-Tag des Anfrage-Bodys eingefügt (so kannst du Anfragen ändern, während du sie im Proxy/Intercept abfängst, oder Payloads im Repeater erstellen).
Kein Parameter.
Dieser Knoten dekodiert die ihm übergebenen Daten per Base64 und kodiert sie entlang
der Kette wieder, wenn du die Daten auf seiner Ebene oder bei einem seiner Kinder änderst.
Kein Parameter.
Dieser Knoten führt eine einfache URL-Dekodierung der ihm übergebenen Daten durch. Beachte, dass die
in diesem Knoten oder einem seiner Kinder geänderten Daten nach der erneuten Kodierung entlang
der Kette anders aussehen können, da nur ungültige URL-Zeichen neu kodiert werden.
Kein Parameter.
Dieser Knoten entpackt die ihm übergebenen Daten per GZip und packt sie wieder per GZip, wenn er selbst oder eines
seiner Kinder geändert wird.
Kein Parameter.
Dieser Knoten wandelt die ihm übergebenen Daten von Binär in einen Hexadezimal-String um. Er
wandelt die Daten wieder von Hexadezimal-String in Binär um, wenn seine Daten oder die Daten
eines seiner Kinder geändert werden.
Kein Parameter.
Dieser Knoten wandelt die ihm übergebenen Daten von einem Hexadezimal-String in Binär um. Er
wandelt die Daten wieder von Binär in einen Hexadezimal-String um, wenn seine Daten oder die Daten
eines seiner Kinder geändert werden.
Ein Parameter:
Dieser Knoten extrahiert Daten aus einem URL-Parameter-Knoten vom Typ x-www-form-urlencoded. Er kann direkt als Header-Kindknoten verwendet werden, um einen URL-Parameter aus der URL der Anfrage zu extrahieren, oder als Body-Kindknoten, wenn der Body nur URL-artige Parameter enthält, oder als Kind eines beliebigen anderen Knotens, wenn dieser eine URL oder x-www-form-urlencoded-Parameter enthält. Geänderte Daten werden an derselben Position wieder in den Parameter eingefügt.
Zwei Parameter:
Dieser Knoten wird verwendet, um einen Body-Parameter vom Typ multipart/form-data zu extrahieren. Geänderte Daten werden an derselben Stelle wieder in den Parameter eingefügt.
Ein Parameter:
Dieser Knoten extrahiert Daten aus einem Cookie. Geänderte Daten werden wieder in das Cookie eingefügt. Dieser Knoten sollte als direktes Kind des Header-Knotens verwendet werden.
Ein Parameter:
Dieser Knoten extrahiert den Inhalt eines Header-Flags. Geänderte Daten werden wieder in das Flag eingefügt. Dieser Knoten sollte als direktes Kind des Header-Knotens verwendet werden.
Ein Parameter:
Dieser Knoten extrahiert den Wert aus dem ersten XML-Knoten, der dem Parameter XML node name entspricht. Geänderte Daten werden wieder in den Wert desselben Knotens eingefügt.
Zwei Parameter:
Dieser Knoten extrahiert den Parameterwert aus dem ersten XML-Knoten, der dem XML node name entspricht. Geänderte Daten werden wieder in den Parameter desselben Knotens eingefügt.
Zwei Parameter:
Dieser Knoten extrahiert Daten aus einem JSON-Payload. Es können nur Daten aus der obersten Ebene des ihm übergebenen Payloads extrahiert werden; du kannst diesen Knoten jedoch mit anderen Json-Knoten verketten, um JSON-Objekte zu extrahieren, die in JSON-Objekten eingebettet sind.
Ein Parameter:
Dieser Knoten verknüpft die ihm übergebenen Daten per UND mit den Daten aus seinem Parameter. Die dem Knoten übergebenen Daten sollten im Binärformat vorliegen (verwende bei Bedarf zuerst einen HextoBin-Knoten). Geänderte Daten werden wieder per UND verknüpft. Beachte jedoch, dass diese Operation wenig Wert hat, da der UND-Operator nicht bijektiv ist (du kannst nicht erwarten, dass die wieder eingefügten Daten in ihrem Kontext sinnvoll sind).
Ein Parameter: