
API REST/JSON pour l'outil de sécurité Burp Suite.
⚠️ AVERTISSEMENT : Ce projet n'est plus activement maintenu.
Bien que le dépôt reste disponible à titre de référence, aucune mise à jour, correction de bug ou assistance ne sera plus fournie.
Une API REST/JSON pour l'outil de sécurité Burp Suite.
Depuis le premier commit en 2016, burp-rest-api est l'outil par défaut pour l'automatisation des scans web propulsés par BurpSuite. De nombreux professionnels de la sécurité et organisations ont fait confiance à cette extension pour orchestrer le travail de Burp Spider et Scanner.
burp-rest-api-2.3.2.jar) depuis la page des versionsburpsuite_pro.jar d'une installation locale de Burp SuiteSur 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
Sur 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
Important !!!
burp-rest-api prend en charge à la fois l'ancienne version Burp Suite Professional v1.7 et la plus récente Burp Suite Professional v2025.x. Ce projet reposant sur l'API Burp Extender, le comportement de certaines fonctionnalités peut légèrement différer selon la version de Burp. Par exemple, la configuration du scanner Burp Suite dans v2025.x n'est plus personnalisable.
Par défaut, Burp est lancé en mode headless avec le Proxy sur le port 8080/tcp (localhost uniquement) et le point de terminaison REST sur 8090/tcp (localhost uniquement).
Pour exécuter Burp en mode UI depuis la ligne de commande, ajoutez l'argument suivant :
--headless.mode=false
Pour modifier le port du serveur sur lequel l'API est accessible, ajoutez l'argument suivant :
--server.port=8081
ou
--port=8081
Vous pouvez également modifier l'adresse du serveur, utilisée pour la liaison de l'adresse réseau :
--server.address=192.168.1.2
ou
--address=192.168.1.2
Les arguments de ligne de commande suivants sont utilisés uniquement par l'extension pour configurer le mode d'exécution et le numéro de port.
--burp.jar=<filename.jar> : Charge le JAR de Burp dynamiquement et l'expose via les API REST. Cet indicateur ne fonctionne qu'avec Java <= 1.8 ! Utilisez le script burp-rest-api.{sh,bat} pour les versions plus récentes de Java.
--burp.ext=<filename.{jar,rb,py} : Charge les extensions Burp données au démarrage de l'application. Cet indicateur peut être répété.
--server.port=<port_number> : Le point de terminaison de l'API REST est disponible au numéro de port indiqué. --port=<port_number> fonctionne comme argument abrégé.
--server.address=<network address> : Adresse réseau à laquelle le point de terminaison de l'API REST doit se lier. --address=<address_ip> fonctionne comme argument abrégé.
--apikey=<customApiKey> : Active l'authentification par clé API pour protéger les API sous /burp/*. La customApiKey, si elle est passée en argument, doit être incluse dans chaque requête HTTP sous forme d'en-tête supplémentaire : "API-KEY: <customApiKey>".
--headless.mode=<true/false> : Lorsqu'il est défini sur false, exécute Burp Suite en mode UI. Sinon, exécute Burp Suite en mode headless. Valeur par défaut : propriété système (java.awt.headless)
Les arguments de ligne de commande passés au JAR exécutable burp-rest-api sont transmis au JAR de Burp Suite. On peut donc passer les arguments de ligne de commande suivants du JAR de Burp Suite au JAR burp-rest-api pour obtenir la même fonctionnalité que si on les passait directement au JAR de Burp Suite.
--project-file=<filename> : Ouvre le fichier de projet de données (Data Project File) spécifié, utilisé pour conserver l'état de l'outil. Le fichier sera créé comme nouveau projet s'il n'existe pas déjà.
--config-file=<filename> : Ouvre le projet en utilisant les options contenues dans le fichier de configuration de projet sélectionné. Pour charger plusieurs configurations de projet, cet argument peut être passé plusieurs fois avec des valeurs différentes.
--user-config-file=<filename> : Ouvre le projet en utilisant les options contenues dans le fichier de configuration utilisateur sélectionné. Pour charger plusieurs configurations utilisateur, cet argument peut être passé plusieurs fois avec des valeurs différentes.
Pour plus d'informations sur les Projets, consultez la documentation de Burp Suite ici et ici. Pour les paramètres du scanner, veuillez vous référer à la section « Support et limitations de Burp Suite ».
Si le JAR burp-rest-api est lancé sans les arguments --project-file, --config-file ou --user-config-file, Burp Suite est lancé avec un fichier de projet temporaire et une configuration par défaut. Le fichier de projet temporaire est créé au lancement de Burp Suite et supprimé à la fin de l'exécution.
Pour la configuration par défaut utilisée pour lancer Burp Suite, veuillez vous référer aux fichiers burp-default-project-options.json et burp-default-user-options.json dans le JAR, sous le dossier static.
Swagger est utilisé pour définir la documentation de l'API. Une fois le JAR lancé, accédez aux ressources suivantes pour la documentation de l'API et l'interface Swagger UI. Le port 8090 est le port serveur par défaut.
Documentation API : http://localhost:8090/v3/api-docs
Swagger UI : http://localhost:8090/swagger-ui/index.html#
Ce projet est également fourni avec un client (BurpClient.java) écrit en Java pour être utilisé dans d'autres projets. Référez-vous au fichier de test d'intégration BurpClientIT.java pour l'utilisation de BurpClient.java.
Ce projet s'inspire à l'origine de Resty-Burp, et est développé en partenariat avec Doyensec LLC.
L'équipe du projet burp-rest-api accueille favorablement les contributions de la communauté. Si vous souhaitez contribuer du code et que vous n'avez pas signé notre accord de licence de contributeur (CLA), notre bot mettra à jour le ticket lorsque vous ouvrirez une Pull Request. Pour toute question sur le processus CLA, veuillez consulter notre FAQ CLA. Pour des informations plus détaillées, consultez CONTRIBUTING.md et FAQ.md.
La section suivante contient des informations utiles pour démarrer le développement de l'extension.
lib dans le répertoire du projet, placez-y le fichier JAR de Burp Suite et renommez-le en « burpsuite_pro.jar » afin d'exécuter les tests d'intégration # build the jar
./gradlew clean build
Si vous souhaitez exécuter l'extension sur des versions récentes (JRE > 9) de la JVM, utilisez le script de lancement burp-rest-api-devel.{sh,bat} après avoir copié burpsuite_pro.jar et burp-rest-api.jar dans le même répertoire que le script.
# Sur Unix (Linux, macOS)
./burp-rest-api-devel.sh
# Sur Windows
./burp-rest-api-devel.bat
Copyright (c) 2016 VMware, Inc. Tous droits réservés. Copyright (c) 2025 Doyensec LLC. Tous droits réservés.
La redistribution et l'utilisation sous forme source et binaire, avec ou sans modification, sont autorisées à condition que les conditions suivantes soient remplies : les redistributions du code source doivent conserver l'avis de droit d'auteur ci-dessus, cette liste de conditions et l'avertissement suivant. Les redistributions sous forme binaire doivent reproduire l'avis de droit d'auteur ci-dessus, cette liste de conditions et l'avertissement suivant dans la documentation et/ou les autres documents fournis avec la distribution.
CE LOGICIEL EST FOURNI PAR LES DÉTENTEURS DU DROIT D'AUTEUR ET LES CONTRIBUTEURS « TELS QUELS » ET TOUTE GARANTIE EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES IMPLICITES DE QUALITÉ MARCHANDE ET D'ADÉQUATION À UN USAGE PARTICULIER, EST DÉCLINÉE. EN AUCUN CAS LE DÉTENTEUR DU DROIT D'AUTEUR OU LES CONTRIBUTEURS NE POURRONT ÊTRE TENUS RESPONSABLES DE TOUT DOMMAGE DIRECT, INDIRECT, ACCESSOIRE, SPÉCIAL, EXEMPLAIRE OU CONSÉCUTIF (Y COMPRIS, MAIS SANS S'Y LIMITER, L'ACHAT DE BIENS OU DE SERVICES DE SUBSTITUTION ; LA PERTE D'UTILISATION, DE DONNÉES OU DE PROFITS ; OU UNE INTERRUPTION D'ACTIVITÉ) QUELLE QU'EN SOIT LA CAUSE ET SUR TOUTE THÉORIE DE RESPONSABILITÉ, QUE CE SOIT PAR CONTRAT, RESPONSABILITÉ STRICTE OU DÉLIT (Y COMPRIS LA NÉGLIGENCE OU AUTRE) DÉCOULANT DE TOUTE MANIÈRE DE L'UTILISATION DE CE LOGICIEL, MÊME SI LA POSSIBILITÉ DE TELS DOMMAGES A ÉTÉ SIGNALÉE.