monstabravo/eagle_eyes

GitHub: monstabravo/eagle_eyes

鹰眼:快速记录网站流量,自动生成爬虫和报告。

Stars: 0 | Forks: 0

# 鹰眼 — API 分析器 **按 `Alt+R`,浏览一个网站,再按 `Alt+R`。获取其私有 API 的工作 Python 爬虫。** [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/752284f5e4023728.svg)](https://github.com/monstabravo/eagle_eyes/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Manifest V3](https://img.shields.io/badge/Chrome-Manifest%20V3-blue.svg)](manifest.json) [![Zero deps](https://img.shields.io/badge/runtime%20deps-0-success)](#system-requirements) [![Pure JS](https://img.shields.io/badge/build-none%20(pure%20JS)-brightgreen)](#system-requirements) ## 返回内容 记录一个会话,获取一个干净的 Python 爬虫类 — 生成,而非脚手架: ``` # 运行 Naabu class EagleEyesScraper: def __init__(self): self.session = requests.Session() self.base_headers = { "user-agent": "...", "accept": "application/json", } self.session.headers.update(self.base_headers) def get_users(self, id, **kwargs) -> Dict[str, Any]: """ GET https://example.com/api/users/{id} Path / URL params: - id (required): str - Example: 123 """ url = f'https://example.com/api/users/{id}' try: params = kwargs.get("params", {}) response = self.session.get(url, params=params, timeout=30) response.raise_for_status() ctype = response.headers.get("content-type", "") return response.json() if ctype.startswith("application/json") else {"text": response.text} except requests.exceptions.RequestException as e: print(f"Request failed: {e}") return {} def post_orders(self, *, customer_id, items, **kwargs) -> Dict[str, Any]: """ POST https://example.com/api/orders JSON body params: - customer_id (required): int - Example: 1 - items (required): list - Example: [1, 2] """ url = 'https://example.com/api/orders' try: payload = {'customer_id': customer_id, 'items': items, **kwargs} response = self.session.post(url, json=payload, timeout=30) response.raise_for_status() ctype = response.headers.get("content-type", "") return response.json() if ctype.startswith("application/json") else {"text": response.text} except requests.exceptions.RequestException as e: print(f"Request failed: {e}") return {} ``` 以及一个伴随的 `(AI).json` 文件,包含每个捕获的请求、端点模式、参数分析、响应树和 Postman 收集 — 设计用于通过一行提示直接放入 Claude / GPT: ## 下午即可审计,而非冲刺 每个具有 `` 权限的浏览器扩展都是一个合理的信任请求。因此: - **2,000 行以下的纯 JavaScript** 涵盖 8 个文件。无打包器,无构建步骤,无 `npm install`。 - **零外部运行时依赖。** 安装时无任何内容被拉取。 - **Manifest V3,无远程代码。** 您加载的内容就是运行的内容。 在加载之前,您可以在一个下午内阅读整个内容。这就是交易。 ## 与其他工具的比较 | | **鹰眼** | DevTools "复制为 cURL" | Charles / mitmproxy | Postman 记录器 | |---|---|---|---|---| | 安装足迹 | **一个解包的扩展** | 内置 | 系统代理 + 证书安装 | 桌面应用程序 + 插件 | | 捕获完整的原始请求 **和** 响应体 | ✅ | 请求仅 | ✅ | ✅ | | 自动检测路由模板 (`/users/123` → `/users/{id}`) | ✅ | ❌ | ❌ | ❌ | | 从真实流量中推断所需参数与可选参数 | ✅ | ❌ | ❌ | ❌ | | 生成可运行的 Python 爬虫类 | ✅ | ❌ | ❌ | ❌ | | 导出 Postman 收集 | ✅ | ❌ | ✅ | ✅ | | 为 LLM 消费构建 (一个大 JSON) | ✅ | ❌ | ❌ | ❌ | | 安全嗅探 (HTTP、弱认证、SQLi 提示) | ✅ | ❌ | ❌ | ❌ | | 提取 cookies + localStorage + sessionStorage | ✅ | ❌ | 部分提取 | ❌ | DevTools 显示您每个请求。Charles 在监视实时流量方面很出色。Postman 组织收集。它们都没有将 60 个捕获的请求转换成一个 LLM 可以读取并从中编写工作爬虫的报告。这就是这个工具填补的空白。 ## AI JSON 中的内容 ``` { "summary": { "total_apis": 42, "unique_endpoints": 15, "method_distribution": { "GET": 28, "POST": 11, "DELETE": 3 }, "security_score": { "score": 72, "rating": "B — Good" } }, "analysis": { "endpoint_analysis": { "/api/users/{id}": { ... } }, "parameter_analysis": { "/api/users/{id}": { "url_params": {...}, "json_params": {...}, "form_params": {...} } }, "response_structures": { "JSON tree + extraction paths": ... }, "detector_analysis": { "auth": 4, "crm": 12, "financial": 2, ... }, "security_issues": [ { "severity": "high", "type": "...", "evidence": ... } ], "recommendations": [ ... ] }, "code_generation": { "python_requests_snippets": [...], "curl_commands": [...], "complete_scraper_code": "class EagleEyesScraper: ...", "postman_collection": {...}, "auth_info": "Bearer Token, Cookie" }, "raw_requests": [ /* every request with full headers + body + response */ ] } ``` 伴随的 `(HU).txt` 是相同的数据,以适合人类阅读的方式扁平化 — 端点列表、参数表、安全发现,60 秒内快速浏览。 ## 安装 1. 克隆此存储库 2. Chrome / Edge → `chrome://extensions` → 切换 **开发者模式** 3. 点击 **加载未打包** 并选择 `eagle_eyes/` 文件夹 4. 锁定扩展(可选,使弹出窗口更容易访问) 无需构建步骤,无需 `npm install`,无需本地二进制文件。 ## 使用方法 1. 打开目标网站(最好在隔离的浏览器配置文件中) 2. 按 **`Alt+R`** 开始录制 3. 像真实用户一样驱动网站 — 登录、导航、提交表单、分页 4. 再次按 **`Alt+R`** 停止并下载两个报告 提示: - **突出 UI 区域** — 按住 `Alt` 并拖动以标记感兴趣的区域;高亮显示与时间轴一起记录,以便您记得每个请求来自哪个屏幕。 - **自动捕获** — 每个 `fetch` / `XMLHttpRequest` 都会捕获,无需额外设置。 ## 分析内容 - **端点模式提取** — `/users/123` 和 `/users/456` 会折叠到 `/users/{id}`,因此您只看到一个行,而不是 200 个。 - **参数推断** — 观察到请求中,标记字段为必需(始终存在)或可选。 - **响应结构解析** — 每个响应的 JSON 树,以及您可以复制的提取路径。 - **10 个内置 API 类别检测器** — 认证、CRM、金融、用户管理、报告、通知、文件上传、搜索、管理员、票务。 - **覆盖率指标** — 调用频率、唯一端点计数、方法分布。 - **安全嗅探(7 条规则)** — URL 中的敏感数据、纯 HTTP、缺少认证头、弱密码、CORS 配置错误、可能的 SQL 注入模式、敏感数据泄露。输出 A-F 级别,并优先修复。 ## 代码生成 | 输出 | 用例 | |---|---| | **完整的 `EagleEyesScraper` Python 类** | 将其放入项目;每个端点生成方法,带有类型注解的参数和文档字符串 | | **每个端点的 `requests` 片段** | 将单个端点复制到现有脚本中 | | **`curl` 一行命令** | 交给 QA / ops,粘贴到 shell 中 | | **Postman 2.1 收集** | 导入以进行手动探索/与团队共享 | ## 适用对象 ✅ 您作为工作的一部分逆向工程内部/未记录的 API ✅ 您构建爬虫并希望跳过“DevTools 钓鱼”阶段 ✅ 您将代码馈送到 LLM 并希望有一个单一的丰富 JSON 来支撑它 ✅ 您审计自己的应用程序并希望快速了解客户端泄漏了什么 ❌ 您需要系统范围的 MITM 代理(使用 Charles / mitmproxy) ❌ 您想要一个完全管理的服务,带有团队账户(这只是一个解包的扩展) ## 架构(所有存在的内容) ``` page (fetch / XHR) | v recorder.js --> background.js --> analyzer.js (endpoints / params / response) --> detector.js (10 category labels) --> security-analyzer.js (7 smell checks) --> code-generator.js (python / curl / postman) | v AI JSON + Human TXT ``` 它是一个 Manifest V3 服务工作者和一个注入的记录器。每个模块都是一个文件。无框架,无路由器,无状态管理库。如果您想跟踪数据流,请首先打开 `background.js`。 ## 系统要求 - Chrome 或 Edge(Manifest V3) - 无额外依赖项 — 纯 JavaScript,无编译步骤 ## 关于安全的直白说明 此工具 **不会掩盖任何内容**。AI JSON 和人类 TXT 包含原始密码、令牌、cookies 和存储值。这是故意的 — 生成的爬虫需要重现确切的会话 — 但这也带来了后果: - 在 **专用浏览器配置文件** 中运行,不要登录其他内容。 - 将输出文件视为凭证。除非您已删除机密,否则不要将它们粘贴到公共 LLM 中。 - 不要在打开其他人的账户的会话上启用它。 内置的安全嗅探仅提供信息 — 它 **不会** 从捕获的数据中删除任何内容。 ## 免责声明 仅限合法的 API 逆向工程、内部系统测试和教育用途。因为此扩展声明了 `` 主机权限,在录制时它捕获了活动选项卡中的每个 fetch / XHR、cookie、存储值和认证令牌。您负责遵守目标网站的条款和适用法律。作者不对滥用承担任何责任。 ## 版本历史 查看 [CHANGELOG.md](CHANGELOG.md). ## 许可证 MIT — 查看 [LICENSE](LICENSE).
标签:API 分析, Chrome 扩展, JSON 报告, LLM 集成, Postman, Python 爬虫, SOC Prime, URL抓取, 代码生成, 开发工具, 数据可视化, 数据抓取, 渗透测试工具, 自定义脚本, 逆向工具, 零依赖