
API REST/JSON para a ferramenta de segurança Burp Suite.
⚠️ AVISO: Este projeto não é mais mantido ativamente.
Embora o repositório permaneça disponível para referência, não serão fornecidas novas atualizações, correções de bugs ou suporte.
Uma API REST/JSON para a ferramenta de segurança Burp Suite.
Desde o primeiro commit em 2016, o burp-rest-api tem sido a ferramenta padrão para automação de varreduras web com o BurpSuite. Muitos profissionais e organizações de segurança contam com esta extensão para orquestrar o trabalho do Burp Spider e do Scanner.
burp-rest-api-2.3.2.jar) na página de releasesburpsuite_pro.jar de uma instalação local do Burp SuiteNo 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
No 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!!!
O burp-rest-api suporta tanto o Burp Suite Professional legado v1.7 quanto o Burp Suite Professional mais recente v2025.x. Como este projeto depende da Burp Extender API, o comportamento de determinadas funcionalidades pode ser ligeiramente diferente dependendo da versão do Burp. Por exemplo, a configuração do Burp Suite Scanner no v2025.x não é mais personalizável.
Por padrão, o Burp é iniciado em modo headless com o Proxy rodando na porta 8080/tcp (somente localhost) e o endpoint REST rodando na porta 8090/tcp (somente localhost).
Para executar o Burp no modo UI a partir da linha de comando, acrescente o seguinte argumento:
--headless.mode=false
Para modificar a porta do servidor na qual a API é acessível, acrescente o seguinte argumento:
--server.port=8081
ou
--port=8081
Você também pode modificar o endereço do servidor, usado para vinculação de endereço de rede:
--server.address=192.168.1.2
ou
--address=192.168.1.2
Os seguintes argumentos de linha de comando são usados apenas pela extensão para configurar o modo de execução e o número da porta.
--burp.jar=<filename.jar> : Carrega o jar do Burp dinamicamente e o expõe por meio de REST APIs. Esta flag funciona apenas em Java <= 1.8! Use o script burp-rest-api.{sh,bat} para versões mais recentes do Java.
--burp.ext=<filename.{jar,rb,py} : Carrega as extensões do Burp fornecidas durante a inicialização do aplicativo. Esta flag pode ser repetida.
--server.port=<port_number> : O endpoint REST API está disponível na porta fornecida. --port=<port_number> funciona como um argumento abreviado.
--server.address=<network address> : Endereço de rede ao qual o endpoint REST API deve ser vinculado. --address=<address_ip> funciona como um argumento abreviado.
--apikey=<customApiKey> : Habilita a autenticação por API key para proteger as APIs em /burp/*. A customApiKey, se passada como argumento, deve ser incluída em toda requisição HTTP como um cabeçalho adicional: "API-KEY: <customApiKey>".
--headless.mode=<true/false> : Quando definido como false, executa o Burp Suite no modo UI. Caso contrário, executa o Burp Suite em modo headless. Valor padrão: System Property (java.awt.headless)
Os argumentos de linha de comando passados ao JAR executável do burp-rest-api são repassados ao JAR do Burp Suite. Dessa forma, pode-se passar os seguintes argumentos de linha de comando do JAR do Burp Suite para o JAR do burp-rest-api para obter a mesma funcionalidade como se estivessem sendo passados diretamente ao JAR do Burp Suite.
--project-file=<filename> : Abre o Data Project File especificado, usado para manter o estado da ferramenta. O arquivo será criado como um novo projeto se ainda não existir.
--config-file=<filename> : Abre o projeto usando as opções contidas no Project Configuration File selecionado. Para carregar múltiplas configurações de projeto, este argumento pode ser passado mais de uma vez com valores diferentes.
--user-config-file=<filename> : Abre o projeto usando as opções contidas no User Configuration File selecionado. Para carregar múltiplas configurações de usuário, este argumento pode ser passado mais de uma vez com valores diferentes.
Para mais informações sobre Projects, consulte a documentação do Burp Suite aqui e aqui. Para configurações do scanner, consulte a seção "Suporte e Limitações do Burp Suite".
Se o JAR do burp-rest-api for iniciado sem os argumentos --project-file, --config-file ou --user-config-file, o Burp Suite será iniciado com um arquivo de projeto temporário e alguma configuração padrão. O arquivo de projeto temporário é criado na inicialização do Burp Suite e excluído ao final da execução.
Para a configuração padrão usada para iniciar o Burp Suite, consulte os arquivos burp-default-project-options.json e burp-default-user-options.json dentro do JAR, na pasta static.
O Swagger é usado para definir a documentação da API. Após iniciar o JAR, acesse os seguintes recursos para ver a documentação da API e a interface Swagger UI. A porta 8090 é a porta padrão do servidor.
API Docs: http://localhost:8090/v3/api-docs
Swagger UI: http://localhost:8090/swagger-ui/index.html#
Este projeto também acompanha um cliente (BurpClient.java) escrito em Java para uso em outros projetos. Consulte o arquivo de Teste de Integração BurpClientIT.java para ver o uso de BurpClient.java.
Este projeto foi originalmente inspirado no Resty-Burp e é desenvolvido em parceria com a Doyensec LLC.
A equipe do projeto burp-rest-api recebe contribuições da comunidade. Se você deseja contribuir com código e ainda não assinou nosso contrato de licença de contribuidor (CLA), nosso bot atualizará a issue quando você abrir um Pull Request. Para qualquer dúvida sobre o processo do CLA, consulte nosso CLA FAQ. Para informações mais detalhadas, consulte CONTRIBUTING.md e FAQ.md.
A seção a seguir contém informações úteis para começar o desenvolvimento da extensão.
lib no diretório do projeto, coloque o JAR do Burp Suite dentro dela e renomeie-o para "burpsuite_pro.jar" para executar os testes de integração # build the jar
./gradlew clean build
Se você quiser executar a extensão em versões recentes (JRE > 9) da JVM, use o script de inicialização burp-rest-api-devel.{sh,bat} após copiar burpsuite_pro.jar e burp-rest-api.jar para o mesmo diretório do script.
# On Unix (Linux, macOS)
./burp-rest-api-devel.sh
# On Windows
./burp-rest-api-devel.bat
Copyright (c) 2016 VMware, Inc. Todos os direitos reservados. Copyright (c) 2025 Doyensec LLC. Todos os direitos reservados.
A redistribuição e o uso, em formas de código-fonte e binárias, com ou sem modificações, são permitidos desde que sejam atendidas as seguintes condições: as redistribuições do código-fonte devem manter o aviso de copyright acima, esta lista de condições e o aviso de isenção de responsabilidade a seguir. As redistribuições em forma binária devem reproduzir o aviso de copyright acima, esta lista de condições e o aviso de isenção de responsabilidade a seguir na documentação e/ou em outros materiais fornecidos com a distribuição.
ESTE SOFTWARE É FORNECIDO PELOS DETENTORES DE DIREITOS AUTORAIS E CONTRIBUIDORES "NO ESTADO EM QUE SE ENCONTRA" ("AS IS") E QUAISQUER GARANTIAS EXPRESSAS OU IMPLÍCITAS, INCLUINDO, MAS NÃO SE LIMITANDO A, AS GARANTIAS IMPLÍCITAS DE COMERCIABILIDADE E ADEQUAÇÃO A UM DETERMINADO FIM SÃO REJEITADAS. EM NENHUM CASO O DETENTOR DOS DIREITOS AUTORAIS OU OS CONTRIBUIDORES SERÃO RESPONSÁVEIS POR QUAISQUER DANOS DIRETOS, INDIRETOS, INCIDENTAIS, ESPECIAIS, EXEMPLARES OU CONSEQUENCIAIS (INCLUINDO, MAS NÃO SE LIMITANDO A, AQUISIÇÃO DE BENS OU SERVIÇOS SUBSTITUTOS; PERDA DE USO, DADOS OU LUCROS; OU INTERRUPÇÃO DE NEGÓCIOS) SEJA COMO FOR, POR QUALQUER TEORIA DE RESPONSABILIDADE, SEJA EM CONTRATO, RESPONSABILIDADE ESTRITA OU ATO ILÍCITO (INCLUINDO NEGLIGÊNCIA OU OUTRA FORMA), DECORRENTE DE QUALQUER FORMA DO USO DESTE SOFTWARE, MESMO QUE AVISADO DA POSSIBILIDADE DE TAIS DANOS.