logo
0
0
WeChat Login

mitm-addon-example

基于 mitmproxy 的 HTTP/HTTPS 响应修改插件,通过 JSON 配置文件定义规则,对匹配的 URL 进行响应拦截与篡改。附带 CA 证书生成工具,可导出 .p12 格式直接导入浏览器。

功能特性

  • URL 正则匹配 - 使用正则表达式精确过滤目标请求
  • 多种响应修改方式
    • json_merge - JSON 字段合并(保留原数据,覆盖/新增字段)
    • replace - 完全替换响应体
    • regex_replace - 正则表达式替换响应文本
    • inject_js - 向 HTML 页面注入 JavaScript
    • inject_html - 向 HTML 页面注入 HTML 片段
  • 修改响应头 - 添加、修改或删除 HTTP 响应头
  • 修改状态码 - 覆盖 HTTP 响应状态码
  • 配置热加载 - 修改 rules.json 后无需重启代理即可生效
  • P12 证书生成 - 一键生成可导入浏览器的 PKCS#12 证书

项目结构

. ├── response_modifier.py # mitmproxy 响应修改插件(核心) ├── gen_cert.py # CA 证书生成工具 ├── rules.json # 规则配置文件 ├── test_plugin.py # 单元测试 ├── test_server.py # 本地测试用 HTTP 服务器 └── docs/ ├── usage-guide.md # 使用指引 ├── development.md # 开发文档 └── testing.md # 测试文档

快速开始

1. 安装依赖

pip install mitmproxy

2. 生成证书并导入浏览器

python3 gen_cert.py --output ./certs

将生成的 certs/mitmproxy-ca.p12 导入浏览器(详见 使用指引)。

3. 编辑规则

编辑 rules.json,配置需要拦截的 URL 和修改方式:

{ "rules": [ { "name": "修改 API 响应", "url_pattern": "https?://api\\.example\\.com/data", "enabled": true, "modify_body": { "type": "json_merge", "data": { "debug": true } }, "modify_headers": { "X-Proxy": "mitmproxy" } } ] }

4. 启动代理

mitmdump -s response_modifier.py --set config_file=rules.json -p 8080

5. 配置浏览器代理

将浏览器 HTTP/HTTPS 代理设置为 127.0.0.1:8080,访问目标网站即可看到响应被修改。

规则配置说明

每条规则支持以下字段:

字段类型必填说明
namestring规则名称(用于日志标识)
url_patternstringURL 匹配正则表达式
enabledbool是否启用,默认 true
modify_status_codeint覆盖响应状态码
modify_headersobject修改响应头(值为 null 表示删除)
modify_bodyobject修改响应体(见下表)

modify_body 类型

type说明额外字段
json_merge合并 JSON 字段data: 要合并的 JSON 对象
replace完全替换响应体data: 新的响应内容(字符串或 JSON 对象)
regex_replace正则替换文本pattern, replacement
inject_js注入 JavaScriptcode: JS 代码字符串
inject_html注入 HTML 片段code: HTML 字符串, position: before_body_end | after_body_start

文档

许可证

MIT License

About

No description, topics, or website provided.
108.00 KiB
0 forks0 stars1 branches0 TagREADMEMIT license
Language
Python100%