Global Match & Replace (GMR) (расширение Burp Suite)
Global Match & Replace (GMR) расширяет Burp Suite правилами сопоставления/замены, которые применяются глобально или в нескольких выбранных вами инструментах (Repeater, Intruder, Proxy и т. д.). Он предоставляет диффы для каждого запроса и ответа, чтобы вы могли точно видеть, что изменилось.
Это расширение использует Burp Montoya API.
Возможности
Глобальное сопоставление/замена во всех инструментах Burp (не только в Proxy)
Движок на основе правил с нацеливанием для каждого правила (запрос/ответ + выбор инструмента)
Два типа правил: простое (с подстановочными знаками) и RegEx
Поддержка многострочности для каждого правила для сопоставления через переносы строк
Панель тестирования правил с подсветкой совпадений и замен
Просмотр GMR Diff в редакторах запросов/ответов, показывающий исходное и изменённое содержимое
Сохранение сессии для правил и GMR-диффов (с настраиваемым размером кэша)
Установка
Из GitHub-релиза
Скачайте последний burp-global-match-replace-*.jar со страницы Releases.
В Burp Suite:
Extensions → Installed → Add
Выберите Java в качестве типа расширения и укажите JAR-файл.
Сборка из исходников
root@kitploit:~
./gradlew clean jar
JAR-файл появится в build/libs/.
Примечание: этот проект нацелен на байт-код Java 21 для совместимости с Burp. Используйте Java 21+ для сборки (соответственно укажите JAVA_HOME).
Обзор правил
Каждое правило имеет следующие свойства:
Enabled: активность правила.
Target: применяется ли правило к запросам или ответам.
Match Type:
Simple: сопоставление литерального текста с поддержкой подстановочных знаков.
RegEx: полная поддержка регулярных выражений.
Multiline:
Off: .не сопоставляется с переводами строк.
On: .сопоставляется с переводами строк (DOTALL).
^ и $ всегда работают построчно (MULTILINE включён).
Tools: к каким инструментам Burp применяется правило.
Match / Replace: шаблон совпадения и замещающий текст.
Comment: произвольная заметка к правилу.
Примечание: если не выбрано ни одного инструмента, правило не будет выполняться.
Простое сопоставление (с подстановочными знаками)
Простые правила сопоставляют литеральный текст с опциональными подстановочными знаками:
* → любое количество символов
? → ровно один символ
По умолчанию (когда multiline выключен) подстановочные знаки не переходят через переводы строк. Если multiline включён, * и ? могут охватывать новые строки.
Чтобы сопоставить литеральные * или ?, экранируйте их обратной косой чертой:
Правила RegEx используют стандартные регулярные выражения Java. Движок всегда использует MULTILINE и применяет DOTALL только если включён режим Multiline. Это означает:
^ и $ по умолчанию сопоставляются с границами строк
.не сопоставляется с переводами строк, пока multiline не включён
Пример (однострочный):
Удалить заголовок.
root@kitploit:~
Match: ^X-Test:.*$\r?\n
Replace:
Примечание: $\r?\n в конце удаляет строку заголовка и её перевод строки. Если использовать только $, разрыв строки останется.
Пример (многострочный):
Удалить HTML-комментарии.
root@kitploit:~
Match: <!--.*?-->
Replace:
Multiline: ON
Панель правил (вкладка Suite)
Вкладка Suite предоставляет полное управление правилами и тестирование:
Список правил
Столбцы:
Enabled: включение/выключение правила
Target: запрос / ответ
Match Type: Simple / RegEx
Multiline: «On», когда включено
Tools: список выбранных инструментов
Match / Replace / Comment
Кнопки
Add: создать новое правило
Edit: изменить выбранное правило
Duplicate: клонировать выбранное правило (создаётся отключённым, чтобы вы могли безопасно настроить)
Remove: удалить выбранное правило
Панель тестирования правил
Вставьте образец запроса/ответа в Sample Input
Выберите правило
Нажмите Test Selected Rule
Тестовый вывод подсвечивает:
Совпавший текст во входных данных
Замещающий текст в выводе
Группы захвата регулярного выражения (разными цветами)
Просмотр GMR Diff
Когда правило изменяет запрос или ответ, внутри редактора запроса/ответа появляется вкладка «GMR Diff» (в таких инструментах, как Proxy, Repeater, Intruder и т. д.).
Изменённые запросы/ответы будут подсвечены жёлтым, а заметка будет установлена как «Global Match & Replace».
Что оно показывает
Сводку всех применённых правил
Панели Original (исходное) и Modified (изменённое)
Подсвеченные различия
Кнопки Next/Previous для перехода между изменениями
Когда появляется вкладка
Вкладка GMR Diff показывается только если правило действительно изменило сообщение. Если изменения не были применены, вкладка не появится. Это иногда может сбивать с толку, если GMR Diff есть, например, только для запроса или только для ответа.
Подсветка
Обе панели показывают подсветку различий в изменённых областях
Кнопки навигации (< и >) циклически переключают изменения
Счётчик показывает, сколько изменений обнаружено и текущую позицию
Сохранение состояния и настройки
Что сохраняется в сессии
Правила (включая настройку multiline, комментарии и т. д.)