MaR HTTP 数据包智能匹配替换工具技术分析

一、概述

1. 项目背景

A. 项目简介

MaR(Matcher and Replacer)是一款网络安全领域的辅助工具,主要用于 HTTP 协议数据包的精确匹配和智能替换。它能够在满足特定条件时,根据用户定义的规则自动修改 HTTP 请求或响应内容,帮助安全研究人员在渗透测试过程中实现数据篡改自动化。

B. 设计理念

MaR 的设计理念源自 BurpSuite 原生的 Match and Replace 功能,但提供了更灵活强大的规则配置能力,支持条件匹配、正则表达式、多范围等高级特性。

C. 技术栈

  • 开发语言:Java
  • 开发框架:Montoya API
  • 依赖平台:BurpSuite >= 2023.12.1

2. 核心价值

A. 自动化程度高

通过规则引擎自动处理 HTTP 流量,减少手动操作

B. 灵活性强

支持多种匹配范围、条件关系和正则表达式

C. 易用性好

提供右键快速创建规则功能,配置文件结构清晰

二、系统架构

1. 整体架构

graph TB
    A[HTTP 流量] --> B[BurpSuite 拦截]
    B --> C[MaR 插件]
    C --> D{规则匹配引擎}
    D -->|条件满足| E[执行替换]
    D -->|条件不满足| F[原样转发]
    E --> G[修改后数据包]
    F --> H[原始数据包]
    G --> I[发送/接收]
    H --> I

    J[Config.yml] --> D
    K[Rules.yml] --> D
    L[用户界面] --> D

MaR 系统架构图

2. 核心组件

A. 规则引擎

负责解析和执行用户定义的匹配替换规则

B. 配置管理器

管理 Config.yml 和 Rules.yml 配置文件

C. UI 交互层

提供规则管理和配置界面

D. 消息处理器

拦截和处理 HTTP 消息

3. 工作流程

sequenceDiagram
    participant U as 用户
    participant B as BurpSuite
    participant M as MaR 插件
    participant R as 规则引擎
    participant C as 配置文件

    U->>B: 发起 HTTP 请求
    B->>M: 拦截消息
    M->>C: 加载规则
    C-->>M: 返回规则列表
    M->>R: 匹配条件
    alt 条件满足
        R->>M: 执行替换
        M->>B: 修改后消息
    else 条件不满足
        R->>M: 保持原样
        M->>B: 原始消息
    end
    B->>U: 返回响应

MaR 工作流程时序图

三、功能详解

1. 规则配置项

MaR 的规则配置包含以下核心项目:

配置项说明
Name规则名称,用于标识规则
C-Scope条件范围,指定在哪个部分检查条件
Relationship匹配关系,支持「匹配」和「不匹配」
Condition条件内容,用于判断是否执行替换
C-Regex条件是否使用正则表达式
M-Scope替换范围,指定在哪个部分执行替换
Match匹配内容,需要被替换的内容
Replace替换内容,替换后的新内容
M-Regex替换是否使用正则表达式

2. 支持的作用范围

A. 请求相关范围

  • request:完整请求
  • request method:请求方法
  • request uri:请求 URI
  • request header:请求头
  • request body:请求体

B. 响应相关范围

  • response:完整响应
  • response status:响应状态码
  • response header:响应头
  • response body:响应体

3. 高级配置

A. 排除后缀

排除指定后缀的请求,避免处理静态资源

B. 阻止主机

排除对指定域名的请求

C. 作用域

选择 MaR 应用于 BurpSuite 的哪些模块(Proxy、Repeater、Intruder 等)

四、配置管理

1. 配置文件位置

A. Linux/Mac 用户

配置文件位于:~/.config/MaR/

B. Windows 用户

配置文件位于:%USERPROFILE%/.config/MaR/

C. 便携模式

配置文件可放置在 MaR Jar 包同级目录下的 /.config/MaR/ 目录,方便离线使用

2. 配置文件结构

A. Config.yml

全局配置文件,包含排除规则、作用范围等设置

B. Rules.yml

规则定义文件,存储所有匹配替换规则

五、应用场景

1. 参数篡改

根据条件自动修改请求参数值

示例场景:

  • 将普通用户 ID 修改为管理员 ID
  • 修改价格参数进行逻辑漏洞测试
  • 修改权限标识进行越权测试

2. 响应修改

修改响应内容绕过前端验证

示例场景:

  • 修改响应状态码绕过前端限制
  • 修改返回数据测试 XSS
  • 修改错误信息探测后端逻辑

3. 请求注入

自动添加或修改请求/响应头

示例场景:

  • 添加测试头进行鉴权绕过
  • 修改 Content-Type 进行注入测试
  • 添加自定义头部进行 CRLF 注入测试

六、使用指南

1. 插件安装

路径:Extender - Extensions - Add - Select File - Next

2. 快速创建规则

在 HTTP 请求/响应编辑器中选中文本,右键选择「Create MaR Rule」快速创建规则,选中内容会自动填充到条件和匹配字段

3. 规则管理界面

  • Rules 标签页:管理所有规则
  • Config 标签页:管理全局配置

七、技术特性

1. Montoya API

MaR 使用 Montoya API 开发,这是 BurpSuite 最新推出的扩展 API,提供更好的性能和稳定性

要求 BurpSuite 版本 >= 2023.12.1

2. 正则表达式支持

条件匹配和内容替换均支持正则表达式,提供强大的文本处理能力

3. 条件关系

支持「匹配」和「不匹配」两种条件关系,实现更灵活的规则逻辑

4. 多范围处理

支持同时对多个范围进行条件检查和替换操作

八、项目信息

1. 开发团队

  • 第一作者:EvilChen
  • 第二作者:0chencc
  • 团队:Mystery Security Team

2. 项目状态

  • Stars:271
  • Forks:4
  • 最新版本:v1.1
  • 最后更新:2024 年 12 月 28 日

3. 开源协议

开源项目,可自由使用和修改


参考资料

  1. MaR GitHub 仓库
最后修改:2026 年 01 月 19 日
如果觉得我的文章对你有用,请随意赞赏