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[用户界面] --> D2. 核心组件
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: 返回响应三、功能详解
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. 开源协议
开源项目,可自由使用和修改