全局匹配与替换 (GMR) 扩展了 Burp Suite,通过匹配/替换规则在全局范围内或跨多个您选择的工具(Repeater、Intruder、Proxy 等)应用规则。它提供每个请求和响应的差异对比,让您清楚看到哪些内容发生了变化。
此扩展使用 Burp Montoya API。
burp-global-match-replace-*.jar。./gradlew clean jar
JAR 文件将位于 build/libs/。
注意:本项目针对 Java 21 字节码以兼容 Burp。请使用 Java 21+ 来运行构建(相应设置 JAVA_HOME)。
每条规则具有以下属性:
. 不匹配换行符。. 会匹配换行符(DOTALL)。^ 和 $ 始终按行工作(已启用 MULTILINE)。简单规则匹配字面文本,支持可选通配符:
* → 任意数量字符? → 恰好一个字符默认情况下(multiline 关闭),通配符不跨行匹配。如果 multiline 开启,* 和 ? 可以跨越换行符。
要匹配字面的 * 或 ?,请使用反斜杠进行转义:
\\* → 字面 *\\? → 字面 ?\\\\ → 字面反斜杠示例(单行): 更改 User-Agent。
匹配: User-Agent: *
替换: User-Agent: Mozilla/5.0 (...) Chrome/123
正则规则是标准的 Java 正则表达式。引擎始终使用 MULTILINE,仅在 Multiline 启用时才使用 DOTALL。这意味着:
^ 和 $ 默认匹配行边界. 不匹配换行符,除非 multiline 启用示例(单行): 移除一个头部。
匹配: ^X-Test:.*$\r?\n
替换:
注意:末尾的 $\r?\n 会移除头部行及其换行符。仅使用 $ 会保留换行符。
示例(多行): 移除 HTML 注释。
匹配: <!--.*?-->
替换:
多行: 开启
Suite 选项卡提供完整的规则管理和测试功能:
列:
测试输出会高亮显示:
当规则修改了请求或响应时,请求/响应编辑器(在 Proxy、Repeater、Intruder 等工具中)会出现一个 “GMR 差异” 选项卡。
修改后的请求/响应会以黄色高亮显示,备注设置为“全局匹配与替换”。
GMR 差异选项卡仅当规则实际修改了消息时才会显示。如果没有应用任何更改,该选项卡不会出现。这在某些情况下可能会造成混淆,例如仅对请求或仅对响应存在 GMR 差异时。
< 和 >)循环浏览变更扩展设置页面包含:
$1 或反向引用。$1、$2 等。GPL v3