mrxvaau/flowrec

GitHub: mrxvaau/flowrec

基于 mitmproxy 的本地 HTTPS 代理记录与 API 流量分析工具,通过自动认证检测、意图分类、Token 生命周期追踪和依赖图构建,实现 API 调用链路的可视化分析与一键导出。

Stars: 0 | Forks: 0

# flowrec — 本地 HTTPS API 流量记录与分析器 ## 截图 ### 主菜单 flowrec main menu ### 流量浏览器 flowrec flow browser ### 会话摘要 flowrec session summary ## 功能 | 组件 | 功能说明 | |---|---| | **代理层** | 基于 mitmproxy 的 HTTPS 拦截,支持 HTTP/1.1 + HTTP/2 | | **过滤引擎** | 过滤掉静态资源、分析打点;保留 API/XHR 流量 | | **认证检测器** | 识别 Bearer、Cookie、CSRF、Basic、API-Key 认证方式 | | **Token 追踪器** | 跨会话追踪 token 的产生 → 使用 → 刷新 | | **意图分类器** | 为每个请求打上标签(LOGIN、CHAT_SEND、TOKEN_REFRESH…) | | **流量图** | 根据共享的 token / 会话 ID 构建依赖 DAG | | **导出引擎** | 生成 `curl` 命令和 Python `requests` 代码片段 | | **平面文件存储** | 所有数据均以 `.json` + 每个流量的 `.md` 文件存储 — 无需数据库 | | **交互式 TUI** | 基于 Rich 驱动的完整菜单式终端 UI | ## 安装说明 ``` git clone https://github.com/mrxvaau/flowrec cd flowrec pip install -r requirements.txt ``` ## 快速入门 ``` python run.py ``` 无需任何参数 — 直接启动交互式 TUI 菜单。 ### 或直接使用 CLI ``` python run.py start --port 8888 python run.py list python run.py show python run.py graph python run.py tokens python run.py summary ``` ## 设置 — MITM 证书(一次性) 1. 启动 flowrec 并将浏览器代理设置为 `127.0.0.1:8888` 2. 在配置好代理的浏览器中访问 `http://mitm.it` 3. 为您的操作系统下载并安装证书 ``` Windows: Double-click .cer → Local Machine → Trusted Root CAs macOS: Keychain Access → Import → Set Trust to Always Linux: sudo cp cert.pem /usr/local/share/ca-certificates/ && update-ca-certificates ``` ## TUI 菜单选项 | 按键 | 操作 | |---|---| | `1` | 开始捕获 — 提示输入端口,显示实时彩色流 | | `2` | 浏览流量 — 按意图/方法/主机/状态过滤,检查详情 | | `3` | 流量依赖图 — 显示 token 链的 ASCII DAG | | `4` | Token 生命周期 — 所有被追踪的 token 及其刷新事件检测 | | `5` | 会话摘要 — 按意图、方法、状态、认证分类统计 | | `6` | 导出所有流量为 `.md` 或 `.json` 格式 | | `7` | 清除所有数据 | | `8` | 证书设置说明 | ## 意图标签 | 意图 | 触发条件 | |---|---| | `LOGIN` | 路径 `/login` 或包含字段 `{email, password}` | | `TOKEN_REFRESH` | 路径 `/refresh` 或包含字段 `{grant_type, refresh_token}` | | `CHAT_SEND` | 路径 `/chat` + POST,或包含字段 `{message}` | | `AI_COMPLETION` | 路径 `/completions` + 包含字段 `{prompt}` | | `GRAPHQL` | 路径 `/graphql` + POST | | `PROFILE_GET` | 路径 `/me`、`/profile` + GET | | `FILE_UPLOAD` | 路径 `/upload` 或包含字段 `{file}` | | `HEALTHCHECK` | 路径 `/ping`、`/health` | | `DATA_FETCH` | GET 请求的默认回退 | | `DATA_POST` | POST 请求的默认回退 | ## 数据存储 所有数据存放在 `flowrec/data/` 目录下 — 无需数据库: ``` data/ ├── flows.json ← index of all flows ├── tokens.json ← tracked tokens ├── graph.json ← computed dependency graph ├── session.md ← human-readable session summary ├── export/ ← bulk exports land here └── flows/ ├── abc12345.md ← per-flow markdown └── ... ``` ## 架构 ``` flowrec/ ├── run.py ← entry point (TUI or CLI) ├── tui.py ← interactive terminal UI ├── proxy/ │ └── interceptor.py ← mitmproxy addon ├── core/ │ ├── filter.py ← request filtering rules │ ├── parser.py ← body decoding, JSON utils │ ├── auth.py ← auth detection │ ├── token_tracker.py ← token lifecycle │ ├── classifier.py ← intent classification │ ├── flow_builder.py ← dependency graph │ └── exporter.py ← curl + Python export ├── db/ │ └── models.py ← FlowRecord, TokenRecord, Store └── cli/ └── commands.py ← CLI interface ``` ## 环境要求 ``` mitmproxy>=10.0.0 brotli>=1.0.9 rich>=13.0.0 ``` ## 作者 **mrxvaau** — [github.com/mrxvaau](https://github.com/mrxvaau) · [mrxvaau.github.io](https://mrxvaau.github.io) ## 许可证 MIT
标签:API流量分析, API调试, DNS枚举, Elastic Stack, HTTP/HTTPS抓包, HTTPS代理, mitmproxy, Python, TUI工具, 中间人代理, 代码示例, 令牌追踪, 依赖图分析, 威胁情报, 开发者工具, 态势感知, 意图分类, 数据分析, 无后门, 流量录制, 流量重放, 网络安全工具, 网络拦截, 脚本生成, 身份验证检测, 逆向工具, 防御绕过