Loading... # 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. 整体架构 ```mermaid 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 ```  ## 2. 核心组件 ### A. 规则引擎 负责解析和执行用户定义的匹配替换规则 ### B. 配置管理器 管理 Config.yml 和 Rules.yml 配置文件 ### C. UI 交互层 提供规则管理和配置界面 ### D. 消息处理器 拦截和处理 HTTP 消息 ## 3. 工作流程 ```mermaid 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. 开源协议 开源项目,可自由使用和修改 *** ## 参考资料 1. [MaR GitHub 仓库](https://github.com/gh0stkey/MaR) 最后修改:2026 年 01 月 19 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏