Uma extensão do Burp Suite que expõe toda a API Montoya como uma API REST local, com Swagger UI
O reburp transforma o Burp Suite em algo que você pode scriptar. Ele é carregado como uma extensão Java e serve
a API Montoya
por meio de uma API REST HTTP em http://127.0.0.1:9090, com uma especificação OpenAPI e Swagger UI. Qualquer
coisa que você clicaria no Burp - ler o histórico do proxy, enviar uma requisição, editar o escopo, executar um
scan, decodificar um token - torna-se uma chamada JSON que um agente ou uma linha de curl pode fazer.
Ele combina com a skill de agente burp-interaction para que um assistente
de IA possa controlar o Burp diretamente.
Recursos do Burp que seu agente agora pode controlar via REST:
Pegue o reburp-*.jar mais recente em Releases, ou
compile a partir do código-fonte (requer Java 17+).
Cada release do reburp é compilado contra uma versão mínima do Burp Suite (Montoya). Em um Burp mais antigo, pegue o jar correspondente em Releases.
git clone https://github.com/forefy/reburp.git
cd reburp
./gradlew shadowJar
# Output: build/libs/reburp.jar (plus a versioned copy, reburp-<version>.jar)
Carregue reburp.jar em vez da cópia versionada. O Burp recarrega uma extensão a partir do caminho
de onde ela foi carregada, e o nome versionado muda a cada release, então o não versionado
continua recarregando após uma atualização em vez de silenciosamente deixá-lo na build anterior.
Se seu JAVA_HOME não estiver definido, aponte-o para seu JDK:
JAVA_HOME=/path/to/jdk17 ./gradlew shadowJar
build/libs/reburp.jar (ou o reburp-*.jar que você baixou em Releases)Uma aba reburp aparece no Burp mostrando cada chamada REST conforme ela acontece.
Cada linha é uma chamada REST. Selecioná-la mostra a requisição e a resposta da API, além da requisição e da resposta que o reburp enviou ao alvo em seu nome.
Depois de carregado, abra no seu navegador:
A especificação é a fonte da verdade para os formatos de requisição e resposta.
| Grupo | Prefixo | Destaques |
|---|---|---|
| Status | /api/status | Informações da extensão, versão do Burp |
| Proxy | /api/proxy/ | Histórico, busca, anotação, alternância de interceptação, histórico de WebSocket |
| Site Map | /api/sitemap/ | Listar, buscar |
| Scope | /api/scope/ | Verificar URL no escopo, adicionar/remover regras de escopo |
| HTTP | /api/http/ | Enviar HTTP/1.1 e HTTP/2, injeção de token de autenticação, parse, diff, params, reflection, insertion points, cookies |
| Messages | /api/http/message/ | Inspecionar e reescrever requisições e respostas: headers, parâmetros, marcadores, tipos MIME, timing |
| Scanner | /api/scanner/ | Issues, iniciar auditoria/crawl, status da tarefa (somente Pro) |
| Collaborator | /api/collaborator/ | Gerar payloads, consultar interações (somente Pro) |
| Repeater / Intruder | /api/repeater/, /api/intruder/ | Enviar requisições para o Repeater e o Intruder |
| Request Engine | /api/http/engine/ | Mecanismo de requisições assíncrono de alta vazão: pools de recursos, limite de concorrência, throttle, retries, estatísticas ao vivo, pausar/retomar/cancelar, resultados (Burp 2026.x) |
| Config | /api/config/ | Obter/definir opções de projeto e usuário, estado do mecanismo de tarefas |
| Match & Replace | /api/proxy/match-replace/ | Listar, adicionar, remover regras de match-and-replace do proxy |
| Sessions | /api/sessions/ | Listar e excluir regras de tratamento de sessão (o Burp não tem ação de adicionar header) |
| Engagement | /api/engagement/ | Gerador de PoC de CSRF, descoberta de conteúdo, encontrar referências, enviar para o decoder |
| Bambda | /api/bambda/ | Importar scripts Bambda, gerar cadeias de filtros |
# Is the extension up?
curl -s http://127.0.0.1:9090/api/status
# Last 10 proxy entries
curl -s "http://127.0.0.1:9090/api/proxy/history?limit=10"
# Send a request through Burp
curl -s http://127.0.0.1:9090/api/http/send \
-H 'Content-Type: application/json' \
-d '{"host":"example.com","port":443,"use_https":true,"method":"GET","path":"/"}'
# Add a host to scope
curl -s http://127.0.0.1:9090/api/scope/include \
-H 'Content-Type: application/json' \
-d '{"url":"https://example.com"}'
O servidor REST escuta apenas em 127.0.0.1, mas a porta é não autenticada e responde a
qualquer origem. Qualquer coisa que consiga alcançar localhost:9090 pode controlar o Burp, incluindo uma página web
aberta no seu navegador. Trate a porta como confiável apenas localmente e nunca a exponha além do loopback.
Por causa disso, a execução de comandos do SO está desativada por padrão. /api/utils/shell/execute e
/api/utils/shell/execute-raw retornam 403 a menos que a extensão veja isto no ambiente do próprio processo do Burp:
REBURP_ENABLE_SHELL=1
Com isso definido, qualquer origem que consiga alcançar a porta obtém execução remota de código no host. Ative isso
apenas quando você aceitar esse risco. Toda invocação é escrita na aba de saída da extensão.
GET /api/utils/shell/status informa se está ativado e nunca exige que esteja.
A alegação de "API Montoya completa" é verificada mecanicamente por tools/api_coverage.py,
que o workflow de build da CI executa a cada push e falha se qualquer método mapeável
for deixado sem exposição. O comportamento é exercitado separadamente por tools/smoke_test.py contra uma extensão carregada.
9090. Altere port em BurpRestApiExtension.kt e recompile se necessário.compileOnly - ela não é empacotada; o Burp a fornece em tempo de execução.{ "error": "..." }.OpenApiSpec.kt mais fragmentos em docs/. Para adicionar um grupo
de rotas, escreva um fragmento *Paths() e *Schemas() e liste-o em docs/OpenApiSpecExtra.kt.Issues e pull requests são bem-vindos. Por favor, execute python3 tools/api_coverage.py e
./gradlew shadowJar antes de abrir um PR. Novos grupos de rotas devem vir com seu fragmento OpenAPI
para que a documentação permaneça completa.
| Organizer | /api/organizer/ | Listar itens, enviar requisições para o Organizer |
| Issues | /api/issues/ | Criar issues de auditoria personalizadas |
| Events | /api/events/ | Ativar e desativar observadores passivos de tráfego, depois ler os eventos capturados |
| Extension Data | /api/extension-data/ | Armazenamento tipado de chave/valor mantido no arquivo de projeto do Burp |
| Preferences | /api/preferences/ | Preferências de extensão persistidas por tipo |
| Logging | /api/logging/ | Escrever nas abas de saída e erro da extensão e no log de eventos do Burp |
| Activity Log | /api/log/ | Consultar o próprio log de chamadas persistido do reburp |
| AI | /api/ai/ | Status e chat da IA do Burp (onde disponível) |
| Meta | /api/meta/ | Componentes de versão do Burp, informações de carregamento da extensão, vocabulários de enum |
| Utilities | /api/utils/ | Codificar/decodificar URL, base64, hash, decodificar JWT, string aleatória, descompactar |
| Numbers | /api/utils/number/ | Converter entre binário, octal, decimal, hex e bases arbitrárias |
| JSON | /api/utils/json/ | Validar, ler e editar por ponteiro, inspecionar estrutura, normalizar |
| Bytes | /api/utils/bytes/ | Buscar, fatiar, anexar, alocar e inspecionar buffers de bytes |
| Ranking | /api/utils/rank | Classificar o histórico do proxy por quão anômala cada troca parece |
| Shell | /api/utils/shell/ | Execução de comandos do SO. Desativado por padrão, veja Segurança |