
API REST/JSON per lo strumento di sicurezza Burp Suite.
⚠️ AVVISO: Questo progetto non è più mantenuto attivamente.
Sebbene il repository rimanga disponibile come riferimento, non verranno forniti ulteriori aggiornamenti, correzioni di bug o supporto.
Un'API REST/JSON per lo strumento di sicurezza Burp Suite.
Fin dal primo commit nel 2016, burp-rest-api è stato lo strumento predefinito per l'automazione delle scansioni web basate su BurpSuite. Molti professionisti della sicurezza e organizzazioni hanno fatto affidamento su questa estensione per orchestrare il lavoro di Burp Spider e Scanner.
burp-rest-api-2.3.2.jar) dalla pagina delle releaseburpsuite_pro.jar proveniente da un'installazione locale di Burp SuiteSu 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
Su 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
Importante!!!
burp-rest-api supporta sia la legacy Burp Suite Professional v1.7 sia la più recente Burp Suite Professional v2025.x. Poiché questo progetto si basa sulla Burp Extender API, il comportamento di alcune funzionalità potrebbe essere leggermente diverso a seconda della versione di Burp. Ad esempio, la configurazione dello scanner di Burp Suite nella v2025.x non è più personalizzabile.
Per impostazione predefinita, Burp viene avviato in modalità headless con il Proxy in esecuzione sulla porta 8080/tcp (solo localhost) e l'endpoint REST sulla porta 8090/tcp (solo localhost).
Per eseguire Burp in modalità UI dalla riga di comando, aggiungi il seguente argomento:
--headless.mode=false
Per modificare la porta del server sulla quale l'API è accessibile, aggiungi il seguente argomento:
--server.port=8081
oppure
--port=8081
Puoi anche modificare l'indirizzo del server, utilizzato per il binding dell'indirizzo di rete:
--server.address=192.168.1.2
oppure
--address=192.168.1.2
I seguenti argomenti della riga di comando sono utilizzati solo dall'estensione per configurare la modalità di esecuzione e il numero di porta.
--burp.jar=<filename.jar> : Carica dinamicamente il JAR di Burp e lo espone tramite le API REST. Questo flag funziona solo con Java <= 1.8! Usa lo script burp-rest-api.{sh,bat} per versioni più recenti di Java.
--burp.ext=<filename.{jar,rb,py} : Carica le estensioni Burp indicate all'avvio dell'applicazione. Questo flag può essere ripetuto.
--server.port=<port_number> : L'endpoint REST API è disponibile sulla porta indicata. --port=<port_number> funziona come argomento abbreviato.
--server.address=<network address> : Indirizzo di rete a cui deve essere associato l'endpoint REST API. --address=<address_ip> funziona come argomento abbreviato.
--apikey=<customApiKey> : Abilita l'autenticazione tramite API key per proteggere le API in /burp/*. Se customApiKey viene passata come argomento, deve essere inclusa in ogni richiesta HTTP come header aggiuntivo: "API-KEY: <customApiKey>".
--headless.mode=<true/false> : Se impostato su false, esegue Burp Suite in modalità UI. Altrimenti esegue Burp Suite in modalità headless. Valore predefinito: proprietà di sistema (java.awt.headless)
Gli argomenti della riga di comando passati al JAR eseguibile di burp-rest-api vengono inoltrati al JAR di Burp Suite. Pertanto, si possono passare i seguenti argomenti della riga di comando del JAR di Burp Suite al JAR di burp-rest-api per ottenere la stessa funzionalità che si avrebbe passandoli direttamente al JAR di Burp Suite.
--project-file=<filename> : Apre il Data Project File specificato, utilizzato per mantenere lo stato dello strumento. Il file verrà creato come nuovo progetto se non esiste già.
--config-file=<filename> : Apre il progetto utilizzando le opzioni contenute nel Project Configuration File selezionato. Per caricare più configurazioni di progetto, questo argomento può essere passato più volte con valori diversi.
--user-config-file=<filename> : Apre il progetto utilizzando le opzioni contenute nel User Configuration File selezionato. Per caricare più configurazioni utente, questo argomento può essere passato più volte con valori diversi.
Per maggiori informazioni sui Progetti, fare riferimento alla documentazione di Burp Suite qui e qui. Per le impostazioni dello scanner, fare riferimento alla sezione "Supporto e Limitazioni di Burp Suite".
Se il JAR di burp-rest-api viene avviato senza gli argomenti --project-file, --config-file o --user-config-file, Burp Suite viene avviato con un file di progetto temporaneo e una configurazione predefinita. Il file di progetto temporaneo viene creato all'avvio di Burp Suite e viene eliminato al termine dell'esecuzione.
Per la configurazione predefinita utilizzata per avviare Burp Suite, fare riferimento ai file burp-default-project-options.json e burp-default-user-options.json all'interno del JAR, nella cartella static.
Swagger viene utilizzato per definire la documentazione API. Una volta avviato il JAR, accedi alle seguenti risorse per la documentazione API e la Swagger UI. La porta 8090 è la porta predefinita del server.
Documentazione API: http://localhost:8090/v3/api-docs
Swagger UI: http://localhost:8090/swagger-ui/index.html#
Questo progetto include anche un client (BurpClient.java) scritto in Java per l'uso in altri progetti. Fare riferimento al file di test di integrazione BurpClientIT.java per l'utilizzo di BurpClient.java.
Questo progetto è originariamente ispirato a Resty-Burp, ed è sviluppato in collaborazione con Doyensec LLC.
Il team del progetto burp-rest-api accoglie con piacere i contributi della community. Se desideri contribuire con codice e non hai firmato il nostro accordo di licenza per i contributori (CLA), il nostro bot aggiornerà la issue quando apri una Pull Request. Per qualsiasi domanda sul processo di CLA, fare riferimento alla nostra FAQ sul CLA. Per informazioni più dettagliate, fare riferimento a CONTRIBUTING.md e FAQ.md.
La seguente sezione contiene informazioni utili per iniziare lo sviluppo dell'estensione.
lib nella directory del progetto, inserisci il file JAR di Burp Suite al suo interno e rinominalo in "burpsuite_pro.jar" per eseguire i test di integrazione # build the jar
./gradlew clean build
Se vuoi eseguire l'estensione su versioni recenti (JRE > 9) della JVM, usa lo script di avvio burp-rest-api-devel.{sh,bat} dopo aver copiato burpsuite_pro.jar e burp-rest-api.jar nella stessa directory dello script.
# On Unix (Linux, macOS)
./burp-rest-api-devel.sh
# On Windows
./burp-rest-api-devel.bat
Copyright (c) 2016 VMware, Inc. Tutti i diritti riservati. Copyright (c) 2025 Doyensec LLC. Tutti i diritti riservati.
La ridistribuzione e l'uso in forma sorgente e binaria, con o senza modifiche, sono consentiti a condizione che vengano soddisfatte le seguenti condizioni: le ridistribuzioni del codice sorgente devono mantenere il suddetto avviso di copyright, questo elenco di condizioni e il seguente disclaimer. Le ridistribuzioni in forma binaria devono riprodurre il suddetto avviso di copyright, questo elenco di condizioni e il seguente disclaimer nella documentazione e/o in altri materiali forniti con la distribuzione.
QUESTO SOFTWARE È FORNITO DAI TITOLARI DEL COPYRIGHT E DAI CONTRIBUTORI "COSÌ COM'È" E QUALSIASI GARANZIA ESPRESSA O IMPLICITA, INCLUSE, MA NON LIMITATE A, LE GARANZIE IMPLICITE DI COMMERCIABILITÀ E IDONEITÀ PER UNO SCOPO PARTICOLARE SONO DECLINATE. IN NESSUN CASO IL TITOLARE DEL COPYRIGHT O I CONTRIBUTORI SARANNO RESPONSABILI PER QUALSIASI DANNO DIRETTO, INDIRETTO, INCIDENTALE, SPECIALE, ESEMPLARE O CONSEQUENZIALE (INCLUSI, MA NON LIMITATI A, APPROVVIGIONAMENTO DI BENI O SERVIZI SOSTITUTIVI; PERDITA DI UTILIZZO, DATI O PROFITTI; O INTERRUZIONE DELL'ATTIVITÀ) QUALUNQUE SIA LA CAUSA E SU QUALSIASI TEORIA DI RESPONSABILITÀ, SIA IN CONTRATTO, RESPONSABILITÀ STRETTA O ILLECITO (INCLUSA LA NEGLIGENZA O ALTRO) DERIVANTE IN QUALSIASI MODO DALL'USO DI QUESTO SOFTWARE, ANCHE SE AVVISATI DELLA POSSIBILITÀ DI TALI DANNI.