Correspondência e Substituição Global (GMR) (Extensão do Burp Suite)
O Global Match & Replace (GMR) estende o Burp Suite com regras de correspondência/substituição para aplicar globalmente ou em várias ferramentas de sua escolha (Repeater, Intruder, Proxy, etc.). Ele fornece diffs por requisição e resposta para que você veja exatamente o que mudou.
Esta extensão utiliza a API Burp Montoya.
Funcionalidades
Correspondência/substituição global em todas as ferramentas do Burp (não apenas Proxy)
Motor baseado em regras com direcionamento por regra (requisição/resposta + seleção de ferramenta)
Dois tipos de regras: Simples (com curingas) e RegEx
Suporte multiline por regra para correspondência entre quebras de linha
Painel de teste de regras com correspondências e substituições destacadas
Visualização de Diff GMR nos editores de requisição/resposta mostrando conteúdo original vs modificado
Persistência de sessão para regras e diffs GMR (com tamanho de cache configurável)
Instalação
A partir de um Release do GitHub
Baixe o burp-global-match-replace-*.jar mais recente da página de Releases.
No Burp Suite: Extensions → Installed → Add
Selecione Java como o tipo de extensão e escolha o JAR.
Compilar a partir do código fonte
root@kitploit:~
./gradlew clean jar
O JAR estará em build/libs/.
Nota: Este projeto tem como alvo o bytecode Java 21 para compatibilidade com Burp. Use Java 21+ para executar a compilação (defina JAVA_HOME adequadamente).
Visão Geral das Regras
Cada regra possui as seguintes propriedades:
Ativada: Se a regra está ativa.
Alvo: Se a regra se aplica a Requisições ou Respostas.
Tipo de Correspondência:
Simples: Correspondência de texto literal com suporte a curingas.
RegEx: Suporte completo a expressões regulares.
Multiline:
Desligado: .não corresponde a quebras de linha.
Ligado: .corresponde a quebras de linha (DOTALL).
^ e $ sempre funcionam por linha (MULTILINE habilitado).
Ferramentas: Quais ferramentas do Burp a regra se aplica.
Corresponder / Substituir: O padrão de correspondência e o texto de substituição.
Comentário: Nota livre da regra.
Nota: se nenhuma ferramenta estiver selecionada, a regra não será executada.
Correspondência Simples (com curingas)
Regras simples correspondem a texto literal com curingas opcionais:
* → qualquer número de caracteres
? → exatamente um caractere
Por padrão (multiline desligado), os curingas não cruzam quebras de linha. Se multiline estiver ligado, * e ? podem abranger novas linhas.
Para corresponder a um * ou ? literal, escape-o com uma barra invertida:
Regras regex são expressões regulares Java padrão. O motor sempre utiliza MULTILINE e só utiliza DOTALL se Multiline estiver habilitado. Isso significa:
^ e $ correspondem a limites de linha por padrão
.não corresponde a quebras de linha a menos que multiline esteja habilitado
Exemplo (linha única):
Remover um cabeçalho.
root@kitploit:~
Match: ^X-Test:.*$\r?\n
Replace:
Nota: o $\r?\n no final remove a linha do cabeçalho e seu término de linha. Usar apenas $ deixaria a quebra de linha no lugar.
Exemplo (multiline):
Remover comentários HTML.
root@kitploit:~
Match: <!--.*?-->
Replace:
Multiline: ON
Painel de Regras (Aba do Suite)
A aba do suite fornece gerenciamento e teste completos de regras:
Lista de Regras
Colunas:
Ativada: alternar regra ligada/desligada
Alvo: Requisição / Resposta
Tipo de Correspondência: Simples / RegEx
Multiline: “Ligado” quando habilitado
Ferramentas: lista de ferramentas selecionadas
Corresponder / Substituir / Comentário
Botões
Adicionar: criar uma nova regra
Editar: modificar a regra selecionada
Duplicar: clonar a regra selecionada (criada desativada para que você possa ajustar com segurança)
Remover: excluir a regra selecionada
Painel de Teste de Regras
Cole uma requisição/resposta de exemplo em Entrada de Amostra
Selecione uma regra
Clique em Testar Regra Selecionada
A saída do teste destaca:
Texto correspondido na entrada
Texto de substituição na saída
Grupos de captura regex (cores diferentes)
Visualização de Diff GMR
Quando uma regra modifica uma requisição ou resposta, uma aba “GMR Diff” aparece dentro do editor de requisição/resposta (em ferramentas como Proxy, Repeater, Intruder, etc.).
Requisições/respostas modificadas serão destacadas em amarelo, e a nota será definida como “Global Match & Replace”.
O que mostra
Um resumo de todas as regras que foram aplicadas
Painéis Original vs Modificado
Diferenças destacadas
Botões Próximo/Anterior para navegar entre as alterações
Quando a aba aparece
A aba GMR Diff é mostrada apenas se uma regra realmente modificou a mensagem. Se nenhuma alteração foi aplicada, a aba não aparecerá. Isso pode ser confuso se, por exemplo, houver um GMR Diff apenas na requisição ou apenas na resposta.
Destaque
Ambos os painéis mostram destaques de diff para as regiões alteradas
Botões de navegação (< e >) percorrem as alterações
A contagem mostra quantas alterações foram detectadas e a posição atual