Global Match & Replace (GMR) (Estensione Burp Suite)
Global Match & Replace (GMR) estende Burp Suite con regole di match/replace da applicare globalmente o su più strumenti a scelta (Repeater, Intruder, Proxy, ecc.). Fornisce diff per richiesta e risposta così puoi vedere esattamente cosa è cambiato.
Questa estensione utilizza l'API Burp Montoya.
Funzionalità
Global match/replace su tutti gli strumenti Burp (non solo Proxy)
Motore basato su regole con targeting per regola (richiesta/risposta + selezione strumenti)
Due tipi di regole: Simple (con caratteri jolly) e RegEx
Supporto multilinea per regola per il matching su più righe
Pannello di test delle regole con corrispondenze e sostituzioni evidenziate
Vista GMR Diff negli editor di richiesta/risposta che mostra il contenuto originale vs modificato
Persistenza di sessione per regole e diff GMR (con dimensione cache configurabile)
Installazione
Da una release GitHub
Scarica l'ultima burp-global-match-replace-*.jar dalla pagina Releases.
In Burp Suite:
Extensions → Installed → Add
Seleziona Java come tipo di estensione e scegli il JAR.
Compilazione dal sorgente
root@kitploit:~
./gradlew clean jar
Il JAR si troverà in build/libs/.
Nota: questo progetto genera bytecode Java 21 per la compatibilità con Burp. Usa Java 21+ per eseguire la build (imposta JAVA_HOME di conseguenza).
Panoramica delle regole
Ogni regola ha le seguenti proprietà:
Enabled: Indica se la regola è attiva.
Target: Indica se la regola si applica a Requests o Responses.
Match Type:
Simple: corrispondenza testuale letterale con supporto ai caratteri jolly.
RegEx: supporto completo alle espressioni regolari.
Multiline:
Off: .non corrisponde ai newline.
On: .corrisponde ai newline (DOTALL).
^ e $ funzionano sempre per riga (MULTILINE abilitato).
Tools: A quali strumenti Burp si applica la regola.
Match / Replace: Il pattern di corrispondenza e il testo di sostituzione.
Comment: Nota libera per la regola.
Nota: se non selezioni alcuno strumento, la regola non verrà eseguita.
Simple Match (con caratteri jolly)
Le regole Simple corrispondono a testo letterale con caratteri jolly opzionali:
* → un numero qualsiasi di caratteri
? → esattamente un carattere
Per impostazione predefinita (multiline disattivato), i caratteri jolly non attraversano le interruzioni di riga. Se multiline è attivo, * e ? possono estendersi su più newline.
Per corrispondere a un * o ? letterale, escapalo con una barra rovesciata:
Le regole Regex sono espressioni regolari standard Java. Il motore usa sempre MULTILINE e usa DOTALL solo se Multiline è abilitato. Questo significa:
^ e $ corrispondono ai confini di riga per impostazione predefinita
.non corrisponde ai newline a meno che multiline non sia abilitato
Esempio (riga singola):
Rimuovi un header.
root@kitploit:~
Match: ^X-Test:.*$\r?\n
Replace:
Nota: $\r?\n alla fine rimuove la riga dell'header e la sua terminazione di riga. Usando solo $ lascerebbe l'interruzione di riga al suo posto.
Esempio (multilinea):
Rimuovi i commenti HTML.
root@kitploit:~
Match: <!--.*?-->
Replace:
Multiline: ON
Pannello Regole (Scheda Suite)
La scheda Suite offre gestione completa delle regole e test:
Elenco regole
Colonne:
Enabled: attiva/disattiva la regola
Target: Request / Response
Match Type: Simple / RegEx
Multiline: "On" quando abilitata
Tools: elenco degli strumenti selezionati
Match / Replace / Comment
Pulsanti
Add: crea una nuova regola
Edit: modifica la regola selezionata
Duplicate: duplica la regola selezionata (viene creata disabilitata così puoi modificarla in sicurezza)
Remove: elimina la regola selezionata
Pannello di test delle regole
Incolla una richiesta/risposta di esempio in Sample Input
Seleziona una regola
Fai clic su Test Selected Rule
L'output del test evidenzia:
Testo corrispondente nell'input
Testo di sostituzione nell'output
Gruppi di cattura regex (colori diversi)
Vista GMR Diff
Quando una regola modifica una richiesta o una risposta, appare una scheda “GMR Diff” all'interno dell'editor di richiesta/risposta (in strumenti come Proxy, Repeater, Intruder, ecc.).
Le richieste/risposte modificate verranno evidenziate in giallo e la nota verrà impostata su “Global Match & Replace”.
Cosa mostra
Un riepilogo di tutte le regole applicate
Riquadri Original vs Modified
Differenze evidenziate
Pulsanti Successivo/Precedente per passare da una modifica all'altra
Quando appare la scheda
La scheda GMR Diff viene mostrata solo se una regola ha effettivamente modificato il messaggio. Se non sono state applicate modifiche, la scheda non apparirà. Questo può talvolta creare confusione se, ad esempio, c'è una GMR Diff solo sulla richiesta o solo sulla risposta.
Evidenziazione
Entrambi i riquadri mostrano l'evidenziazione delle differenze per le aree modificate
I pulsanti di navigazione (< e >) scorrono le modifiche
Il contatore mostra quante modifiche sono state rilevate e la posizione corrente