Global Match & Replace (GMR) (Extensión de Burp Suite)
Global Match & Replace (GMR) amplía Burp Suite con reglas de coincidencia/reemplazo que se aplican globalmente o en múltiples herramientas de tu elección (Repeater, Intruder, Proxy, etc.). Proporciona diferencias (diffs) por solicitud y respuesta para que puedas ver exactamente qué cambió.
Esta extensión utiliza la API Montoya de Burp.
Características
Coincidencia/reemplazo global en todas las herramientas de Burp (no solo Proxy)
Motor basado en reglas con direccionamiento por regla (solicitud/respuesta + selección de herramientas)
Dos tipos de reglas: Simple (con comodines) y RegEx
Soporte multilínea por regla para coincidencias a través de saltos de línea
Panel de prueba de reglas con coincidencias y reemplazos resaltados
Vista de diff GMR en los editores de solicitud/respuesta que muestra el contenido original vs. el modificado
Persistencia de sesión para reglas y diffs de GMR (con tamaño de caché configurable)
Instalación
Desde un Release de GitHub
Descarga el último burp-global-match-replace-*.jar desde la página de Releases.
En Burp Suite: Extensiones → Instaladas → Agregar
Selecciona Java como tipo de extensión y elige el JAR.
Compilar desde el código fuente
root@kitploit:~
./gradlew clean jar
El JAR estará en build/libs/.
Nota: Este proyecto genera bytecode de Java 21 para compatibilidad con Burp. Usa Java 21+ para ejecutar la compilación (configura JAVA_HOME en consecuencia).
Resumen de Reglas
Cada regla tiene las siguientes propiedades:
Habilitada: Indica si la regla está activa.
Objetivo: Indica si la regla se aplica a Solicitudes o Respuestas.
Tipo de coincidencia:
Simple: Coincidencia de texto literal con soporte de comodines.
RegEx: Soporte completo de expresiones regulares.
Multilínea:
Desactivado: .no coincide con saltos de línea.
Activado: .sí coincide con saltos de línea (DOTALL).
^ y $ siempre funcionan por línea (MULTILINE habilitado).
Herramientas: A qué herramientas de Burp se aplica la regla.
Coincidir / Reemplazar: El patrón de coincidencia y el texto de reemplazo.
Comentario: Nota de regla de formato libre.
Nota: si no se selecciona ninguna herramienta, la regla no se ejecutará.
Coincidencia Simple (con comodines)
Las reglas simples coinciden con texto literal con comodines opcionales:
* → cualquier número de caracteres
? → exactamente un carácter
Por defecto (con multilínea desactivado), los comodines no cruzan saltos de línea. Si multilínea está activado, * y ? pueden abarcar saltos de línea.
Para coincidir con un * o ? literal, escápalos con una barra invertida:
Las reglas de expresiones regulares son regex estándar de Java. El motor siempre usa MULTILINE, y solo usa DOTALL si Multilínea está habilitado. Esto significa que:
^ y $ coinciden con límites de línea por defecto
.no coincide con saltos de línea a menos que multilínea esté habilitado
Ejemplo (una sola línea):
Eliminar una cabecera.
root@kitploit:~
Match: ^X-Test:.*$\r?\n
Replace:
Nota: el $\r?\n al final elimina la línea de la cabecera y su salto de línea. Usar solo $ dejaría el salto de línea en su lugar.
Ejemplo (multilínea):
Eliminar comentarios HTML.
root@kitploit:~
Match: <!--.*?-->
Replace:
Multiline: ON
Panel de Reglas (Pestaña de Suite)
La pestaña de suite proporciona gestión y prueba completa de reglas:
Lista de Reglas
Columnas:
Habilitada: activar/desactivar regla
Objetivo: Solicitud / Respuesta
Tipo de coincidencia: Simple / RegEx
Multilínea: “Activado” cuando está habilitado
Herramientas: lista de herramientas seleccionadas
Coincidir / Reemplazar / Comentario
Botones
Agregar: crear una nueva regla
Editar: modificar la regla seleccionada
Duplicar: clonar la regla seleccionada (se crea deshabilitada para que puedas ajustarla de forma segura)
Eliminar: borrar la regla seleccionada
Panel de Prueba de Reglas
Pega una solicitud/respuesta de ejemplo en Entrada de Muestra
Selecciona una regla
Haz clic en Probar Regla Seleccionada
La salida de la prueba resalta:
Texto coincidente en la entrada
Texto de reemplazo en la salida
Grupos de captura de RegEx (en diferentes colores)
Vista de Diff GMR
Cuando una regla modifica una solicitud o respuesta, aparece una pestaña “GMR Diff” dentro del editor de solicitud/respuesta (en herramientas como Proxy, Repeater, Intruder, etc.).
Las solicitudes/respuestas modificadas se resaltarán en amarillo y la nota se establecerá como “Global Match & Replace”.
Qué muestra
Un resumen de todas las reglas que se aplicaron
Paneles Original vs Modificado
Diferencias resaltadas
Botones Anterior/Siguiente para saltar entre cambios
Cuándo aparece la pestaña
La pestaña GMR Diff se muestra solo si una regla realmente modificó el mensaje. Si no se aplicaron cambios, la pestaña no aparecerá. Esto a veces puede resultar confuso si, por ejemplo, hay un GMR Diff solo en la solicitud o solo en la respuesta.
Resaltado
Ambos paneles muestran resaltados de diff para las regiones modificadas
Los botones de navegación (< y >) recorren los cambios
El contador muestra cuántos cambios se detectaron y la posición actual