
API REST/JSON para la herramienta de seguridad Burp Suite.
⚠️ ADVERTENCIA: Este proyecto ya no se mantiene activamente.
Si bien el repositorio permanecerá disponible como referencia, no se proporcionarán más actualizaciones, correcciones de errores ni soporte.
Una API REST/JSON para la herramienta de seguridad Burp Suite.
Desde el primer commit en 2016, burp-rest-api ha sido la herramienta predeterminada para la automatización del escaneo web impulsado por BurpSuite. Muchos profesionales y organizaciones de seguridad han dependido de esta extensión para orquestar el trabajo de Burp Spider y Scanner.
burp-rest-api-2.3.2.jar) desde la página de lanzamientosburpsuite_pro.jar de una instalación local de Burp SuiteOn 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
On 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 admite tanto la versión heredada Burp Suite Professional v1.7 como la más reciente Burp Suite Professional v2025.x. Dado que este proyecto depende de la API de extensión de Burp, el comportamiento de ciertas funcionalidades puede variar ligeramente según la versión de Burp. Por ejemplo, la configuración del escáner de Burp Suite en v2025.x ya no es personalizable.
Por defecto, Burp se inicia en modo headless con el Proxy ejecutándose en el puerto 8080/tcp (solo localhost) y el endpoint REST en el puerto 8090/tcp (solo localhost).
Para ejecutar Burp en modo UI desde la línea de comandos, añada el siguiente argumento:
--headless.mode=false
Para modificar el puerto del servidor en el que la API es accesible, añada el siguiente argumento:
--server.port=8081
o
--port=8081
También puede modificar la dirección del servidor, utilizada para la vinculación de direcciones de red:
--server.address=192.168.1.2
o
--address=192.168.1.2
Los siguientes argumentos de línea de comandos son utilizados solo por la extensión para configurar el modo de ejecución y el número de puerto.
--burp.jar=<filename.jar> : Carga el jar de Burp dinámicamente, y lo expone a través de APIs REST. ¡Esta bandera funciona solo en Java <= 1.8! Use el script burp-rest-api.{sh,bat} para versiones más recientes de Java.
--burp.ext=<filename.{jar,rb,py} : Carga las extensiones de Burp proporcionadas durante el inicio de la aplicación. Esta bandera se puede repetir.
--server.port=<port_number> : El endpoint de la API REST está disponible en el número de puerto dado. --port=<número_puerto> funciona como argumento abreviado.
--server.address=<network address> : Dirección de red a la que debe vincularse el endpoint de la API REST. --address=<dirección_ip> funciona como argumento abreviado.
--apikey=<customApiKey> : Habilita la autenticación mediante clave API para proteger las APIs en /burp/*. La customApiKey, si se pasa como argumento, debe incluirse en cada solicitud HTTP como un encabezado adicional: "API-KEY: <customApiKey>".
--headless.mode=<true/false> : Cuando se establece en false, ejecuta Burp Suite en modo UI. De lo contrario, ejecuta Burp Suite en modo headless. Valor predeterminado: Propiedad del sistema (java.awt.headless)
Los argumentos de línea de comandos pasados al JAR ejecutable burp-rest-api se reenvían al JAR de Burp Suite. Por lo tanto, se pueden pasar los siguientes argumentos de línea de comandos del JAR de Burp Suite al JAR de burp-rest-api para obtener la misma funcionalidad que si se pasaran directamente al JAR de Burp Suite.
--project-file=<filename> : Abre el Archivo de Proyecto de Datos especificado utilizado para mantener el estado de la herramienta. El archivo se creará como un nuevo proyecto si aún no existe.
--config-file=<filename> : Abre el proyecto utilizando las opciones contenidas en el Archivo de Configuración de Proyecto seleccionado. Para cargar múltiples configuraciones de proyecto, este argumento se puede pasar más de una vez con diferentes valores.
--user-config-file=<filename> : Abre el proyecto utilizando las opciones contenidas en el Archivo de Configuración de Usuario seleccionado. Para cargar múltiples configuraciones de usuario, este argumento se puede pasar más de una vez con diferentes valores.
Para más información sobre Proyectos, consulte la documentación de Burp Suite aquí y aquí. Para la configuración del escáner, consulte la sección "Soporte y limitaciones de Burp Suite".
Si el JAR de burp-rest-api se inicia sin los argumentos --project-file, --config-file o --user-config-file, entonces Burp Suite se inicia con un archivo de proyecto temporal y alguna configuración predeterminada. El archivo de proyecto temporal se crea al iniciar Burp Suite y se elimina al finalizar la ejecución.
Para la configuración predeterminada utilizada para iniciar Burp Suite, consulte los archivos burp-default-project-options.json y burp-default-user-options.json dentro del JAR en la carpeta static.
Swagger se utiliza para definir la documentación de la API. Una vez que el JAR esté iniciado, acceda a los siguientes recursos para ver los documentos de la API y la interfaz de Swagger. El puerto 8090 es el puerto del servidor predeterminado.
API Docs: http://localhost:8090/v3/api-docs
Swagger UI: http://localhost:8090/swagger-ui/index.html#
Este proyecto también incluye un cliente (BurpClient.java) escrito en Java para su uso en otros proyectos. Consulte el archivo de prueba de integración BurpClientIT.java para ver el uso de BurpClient.java.
Este proyecto está originalmente inspirado en Resty-Burp, y se desarrolla en asociación con Doyensec LLC.
El equipo del proyecto burp-rest-api agradece las contribuciones de la comunidad. Si desea contribuir con código y no ha firmado nuestro acuerdo de licencia de colaborador (CLA), nuestro bot actualizará el issue cuando abra un Pull Request. Para cualquier pregunta sobre el proceso de CLA, consulte nuestras Preguntas frecuentes sobre CLA. Para información más detallada, consulte CONTRIBUTING.md y FAQ.md.
La siguiente sección contiene información útil para comenzar con el desarrollo de la extensión.
lib en el directorio del proyecto y coloque el archivo JAR de Burp Suite en ella y renómbrelo a "burpsuite_pro.jar" para ejecutar las pruebas de integración # build the jar
./gradlew clean build
Si desea ejecutar la extensión en versiones recientes (JRE > 9) de la JVM, use el script de lanzamiento burp-rest-api-devel.{sh,bat} después de copiar burpsuite_pro.jar y burp-rest-api.jar en el mismo directorio del script.
# On Unix (Linux, macOS)
./burp-rest-api-devel.sh
# On Windows
./burp-rest-api-devel.bat
Copyright (c) 2016 VMware, Inc. Todos los derechos reservados. Copyright (c) 2025 Doyensec LLC. Todos los derechos reservados.
Se permite la redistribución y el uso en formas de código fuente y binario, con o sin modificaciones, siempre que se cumplan las siguientes condiciones: Las redistribuciones de código fuente deben conservar el aviso de copyright anterior, esta lista de condiciones y el siguiente descargo de responsabilidad. Las redistribuciones en forma binaria deben reproducir el aviso de copyright anterior, esta lista de condiciones y el siguiente descargo de responsabilidad en la documentación y/u otros materiales proporcionados con la distribución.
ESTE SOFTWARE ES PROPORCIONADO POR LOS TITULARES DE DERECHOS DE AUTOR Y COLABORADORES "TAL CUAL" Y SE RENUNCIA A CUALQUIER GARANTÍA EXPRESA O IMPLÍCITA, INCLUYENDO, PERO NO LIMITADO A, LAS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD E IDONEIDAD PARA UN PROPÓSITO PARTICULAR. EN NINGÚN CASO EL TITULAR DE DERECHOS DE AUTOR O LOS COLABORADORES SERÁN RESPONSABLES POR NINGÚN DAÑO DIRECTO, INDIRECTO, INCIDENTAL, ESPECIAL, EJEMPLAR O CONSECUENCIAL (INCLUYENDO, PERO NO LIMITADO A, LA ADQUISICIÓN DE BIENES O SERVICIOS SUSTITUTOS; PÉRDIDA DE USO, DATOS O BENEFICIOS; O INTERRUPCIÓN DEL NEGOCIO) YA SEA POR CUALQUIER TEORÍA DE RESPONSABILIDAD, YA SEA POR CONTRATO, RESPONSABILIDAD ESTRICTA O AGRAVIO (INCLUYENDO NEGLIGENCIA O DE OTRO MODO) QUE SURJA DE CUALQUIER MANERA DEL USO DE ESTE SOFTWARE, INCLUSO SI SE HA ADVERTIDO DE LA POSIBILIDAD DE DICHOS DAÑOS.