
REST/JSON-Schnittstelle für das Burp Suite Sicherheitstool.
⚠️ WARNUNG: Dieses Projekt wird nicht mehr aktiv gewartet.
Während das Repository zu Referenzzwecken weiterhin verfügbar bleibt, werden keine weiteren Updates, Fehlerbehebungen oder Support bereitgestellt.
Eine REST/JSON-API für das Sicherheitstool Burp Suite.
Seit dem ersten Commit im Jahr 2016 ist burp-rest-api das Standardwerkzeug für die Automatisierung von BurpSuite-gestützten Web-Scans. Viele Sicherheitsexperten und Organisationen haben sich auf diese Erweiterung verlassen, um die Arbeit von Burp Spider und Scanner zu orchestrieren.
burp-rest-api-2.3.2.jar) von der Release-Seite herunter.burpsuite_pro.jar aus einer lokalen Burp Suite-Installation verwenden.Unter Linux, Mac:
java --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED -cp "burpsuite_pro.jar:burp-rest-api-2.3.2.jar" org.springframework.boot.loader.launch.JarLauncher
Unter Windows:
java --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED -cp "burpsuite_pro.jar;burp-rest-api-2.3.2.jar" org.springframework.boot.loader.launch.JarLauncher
Wichtig!!!
burp-rest-api unterstützt sowohl das ältere Burp Suite Professional v1.7 als auch das neuere Burp Suite Professional v2025.x. Da dieses Projekt auf der Burp Extender API basiert, kann das Verhalten bestimmter Funktionen je nach Burp-Version leicht abweichen. Beispielsweise ist die Burp Suite Scanner-Konfiguration in v2025.x nicht mehr anpassbar.
Standardmäßig wird Burp im Headless-Modus gestartet, wobei der Proxy auf Port 8080/tcp (nur localhost) und der REST-Endpunkt auf Port 8090/tcp (nur localhost) läuft.
Um Burp im UI-Modus von der Kommandozeile aus auszuführen, hängen Sie das folgende Argument an:
--headless.mode=false
Um den Server-Port zu ändern, über den die API erreichbar ist, hängen Sie das folgende Argument an:
--server.port=8081
oder
--port=8081
Sie können auch die Server-Adresse ändern, die für die Netzwerkadressbindung verwendet wird:
--server.address=192.168.1.2
oder
--address=192.168.1.2
Die folgenden Befehlszeilenargumente werden nur von der Erweiterung verwendet, um den Ausführungsmodus und die Portnummer zu konfigurieren.
--burp.jar=<filename.jar> : Lädt das Burp-JAR dynamisch und stellt es über REST-APIs bereit. Dieses Flag funktioniert nur mit Java <= 1.8! Verwenden Sie das Skript burp-rest-api.{sh,bat} für neuere Java-Versionen.
--burp.ext=<filename.{jar,rb,py} : Lädt die angegebenen Burp-Erweiterungen beim Start der Anwendung. Dieses Flag kann wiederholt werden.
--server.port=<port_number> : Der REST-API-Endpunkt ist unter der angegebenen Portnummer verfügbar. --port=<port_number> funktioniert als Kurzform.
--server.address=<network address> : Netzwerkadresse, an die der REST-API-Endpunkt gebunden werden soll. --address=<address_ip> funktioniert als Kurzform.
--apikey=<customApiKey> : Aktiviert die API-Key-Authentifizierung zum Schutz der APIs unter /burp/*. Der customApiKey, falls als Argument übergeben, muss in jeder HTTP-Anfrage als zusätzlicher Header enthalten sein: "API-KEY: <customApiKey>".
--headless.mode=<true/false> : Wenn auf false gesetzt, wird Burp Suite im UI-Modus ausgeführt. Andernfalls wird Burp Suite im Headless-Modus ausgeführt. Standardwert: System-Property (java.awt.headless)
Befehlszeilenargumente, die an das ausführbare burp-rest-api-JAR übergeben werden, werden an das Burp Suite JAR weitergeleitet. Daher kann man die folgenden Burp Suite JAR Befehlszeilenargumente an das burp-rest-api-JAR übergeben, um die gleiche Funktionalität zu erzielen, als würde man sie direkt an das Burp Suite JAR übergeben.
--project-file=<filename> : Öffnet die angegebene Data Project File, die zum Speichern des Zustands des Tools verwendet wird. Die Datei wird als neues Projekt erstellt, falls sie noch nicht existiert.
--config-file=<filename> : Öffnet das Projekt mit den Optionen, die in der ausgewählten Project Configuration File enthalten sind. Um mehrere Projektkonfigurationen zu laden, kann dieses Argument mehrmals mit unterschiedlichen Werten übergeben werden.
--user-config-file=<filename> : Öffnet das Projekt mit den Optionen, die in der ausgewählten User Configuration File enthalten sind. Um mehrere Benutzerkonfigurationen zu laden, kann dieses Argument mehrmals mit unterschiedlichen Werten übergeben werden.
Für weitere Informationen zu Projekten lesen Sie die Burp Suite-Dokumentation hier und hier. Für Scannereinstellungen lesen Sie den Abschnitt „Burp Suite Unterstützung und Einschränkungen".
Wenn das burp-rest-api-JAR ohne die Argumente --project-file, --config-file oder --user-config-file gestartet wird, wird Burp Suite mit einer temporären Projektdatei und einer Standardkonfiguration gestartet. Die temporäre Projektdatei wird beim Start von Burp Suite erstellt und am Ende des Laufs gelöscht.
Für die Standardkonfiguration, die zum Starten von Burp Suite verwendet wird, lesen Sie bitte die Dateien burp-default-project-options.json und burp-default-user-options.json im JAR im Ordner static.
Swagger wird zur Definition der API-Dokumentation verwendet. Sobald das JAR gestartet ist, greifen Sie auf die folgenden Ressourcen für API-Dokumentation und Swagger-Benutzeroberfläche zu. Port 8090 ist der Standard-Server-Port.
API Docs: http://localhost:8090/v3/api-docs
Swagger UI: http://localhost:8090/swagger-ui/index.html#
Dieses Projekt enthält auch einen Client (BurpClient.java), der in Java geschrieben ist und in anderen Projekten verwendet werden kann. Weitere Informationen zur Verwendung von BurpClient.java finden Sie in der Integrationstest-Datei BurpClientIT.java.
Dieses Projekt wurde ursprünglich von Resty-Burp inspiriert und wird in Partnerschaft mit Doyensec LLC entwickelt.
Das burp-rest-api-Projektteam begrüßt Beiträge aus der Community. Wenn Sie Code beitragen möchten und noch keine Contributor License Agreement (CLA) unterzeichnet haben, wird unser Bot das Problem aktualisieren, wenn Sie einen Pull-Request öffnen. Bei Fragen zum CLA-Prozess lesen Sie bitte unsere CLA FAQ. Für detailliertere Informationen lesen Sie CONTRIBUTING.md und FAQ.md.
Der folgende Abschnitt enthält nützliche Informationen für den Einstieg in die Entwicklung der Erweiterung.
lib im Projektverzeichnis, legen Sie die Burp Suite JAR-Datei hinein und benennen Sie sie in "burpsuite_pro.jar" um, um die Integrationstests auszuführen # build the jar
./gradlew clean build
Wenn Sie die Erweiterung auf neueren JVM-Versionen (JRE > 9) ausführen möchten, verwenden Sie das Startskript burp-rest-api-devel.{sh,bat}, nachdem Sie burpsuite_pro.jar und burp-rest-api.jar in dasselbe Verzeichnis wie das Skript kopiert haben.
# Auf Unix (Linux, macOS)
./burp-rest-api-devel.sh
# Auf Windows
./burp-rest-api-devel.bat
Copyright (c) 2016 VMware, Inc. Alle Rechte vorbehalten. Copyright (c) 2025 Doyensec LLC. Alle Rechte vorbehalten.
Die Weitergabe und Nutzung in Quell- und Binärform, mit oder ohne Änderungen, ist unter der Bedingung gestattet, dass die folgenden Bedingungen erfüllt sind: Bei Weitergabe des Quellcodes muss der obige Urheberrechtshinweis, diese Liste der Bedingungen und der folgende Haftungsausschluss beibehalten werden. Bei Weitergabe in binärer Form muss der obige Urheberrechtshinweis, diese Liste der Bedingungen und der folgende Haftungsausschluss in der Dokumentation und/oder anderen Materialien, die mit der Verteilung bereitgestellt werden, wiedergegeben werden.
DIESE SOFTWARE WIRD VON DEN URHEBERRECHTSINHABERN UND MITWIRKENDEN „WIE BESEHEN“ BEREITGESTELLT, UND JEGLICHE AUSDRÜCKLICHEN ODER KONKLUDENTEN GEWÄHRLEISTUNGEN, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE KONKLUDENTEN GEWÄHRLEISTUNGEN DER MARKTGÄNGIGKEIT UND DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK, WERDEN ABGELEHNT. IN KEINEM FALL SIND DIE URHEBERRECHTSINHABER ODER MITWIRKENDEN HAFTBAR FÜR DIREKTE, INDIREKTE, ZUFÄLLIGE, BESONDERE, BEISPIELHAFTE ODER FOLGESCHÄDEN (EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE BESCHAFFUNG VON ERSATZGÜTERN ODER -DIENSTLEISTUNGEN; NUTZUNGSAUSFALL, DATEN- ODER GEWINNVERLUST; ODER GESCHÄFTSUNTERBRECHUNG), WIE AUCH IMMER VERURSACHT UND AUF JEGLICHER HAFTUNGSTHEORIE BERUHEND, OB AUS VERTRAG, VERSCHULDENSUNABHÄNGIGER HAFTUNG ODER UNERLAUBTER HANDLUNG (EINSCHLIESSLICH FAHRLÄSSIGKEIT ODER ANDERWEITIG), DIE AUS DER NUTZUNG DIESER SOFTWARE ENTSTEHEN, SELBST WENN AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN HINGEWIESEN WURDE.