rust-memo/caido-js-secret-hunter
GitHub: rust-memo/caido-js-secret-hunter
Caido 插件,通过后台扫描 HTTP 响应自动发现和分类 JavaScript 中的 secrets、credentials 和敏感端点,并提供专门的分类工作区和脱敏报告导出。
Stars: 0 | Forks: 0
# Caido 的 JS Secret Hunter
在 Caido HTTP 流量中专业地进行后台发现和分类 secrets、credentials、endpoints、identifiers 以及敏感配置。
## 核心亮点
- 扫描现有的 HTTP History 并监控新的 response,且不会阻塞 Caido。
- 使用包含 41 条版本化规则的 detector pack,分析 JavaScript、source maps、HTML、JSON、XML 及其他文本 response。
- 将绝对 URL、根/点相对路由、遗留 action 资源和动态 template 路径提取到专用的 Endpoint Intelligence 工作区中。
- 对每个 response 的转义和 Base64 内容进行一次解码,将证据映射回源代码行,并从预览中编辑相邻的 credentials。
- 提供专用的 Dashboard、Findings、Sensitive Files、Assets、Rules、Reports 和 Settings 工作区。
- 使用服务端搜索、过滤器、排序、分页和有界队列,确保大型项目不会将完整数据集发送到 UI。
- 支持批量分类、持久化审查笔记、可逆的规则/主机排除、Replay 交接以及去重和脱敏的 Caido Findings。
- 导出经过净化的 HTML、JSON 和 CSV 报告。CSV 单元格受到保护,可防止电子表格公式注入。
- 可以在不清除现有项目结果的情况下分析一个已保存的 Caido Request ID。
## 安全与隐私
- 原始匹配值是瞬态的,插件**不会持久化**它们。存储的结果包含掩码值、SHA-256 值哈希和脱敏的证据预览。
- 自动获取 asset **默认关闭**。启用后,每个 request 和重定向都必须保持在 Caido Scope 内。
- 转发 `Cookie` 和 `Authorization` 是独立的、明确的 opt-in 行为,并且仅限于完全同源的 request。
- 自动获取排除项可配置为有界的、不区分大小写的 URL 子字符串;捕获的 response 仍可用于本地分析。
- History、response 大小、递归深度、发现的 assets、保留的 findings 以及实时工作队列都是有界的。
- 保存 Settings 是非破坏性的。重建和清除操作是明确且经过确认的;匹配的审查状态和笔记在重建后会保留下来。
- 数据在每个 Caido 项目中都是隔离的。切换项目不会删除另一个项目的结果。
编码示例、公共 identifiers、测试 keys 和过期的 credentials 仍然可能产生误报。在报告之前,请手动验证 findings。
## 安装说明
1. 从最新的 GitHub Release 下载 `plugin_package.zip`、`plugin_package.zip.sig` 和 `SHA256SUMS`。
2. 验证校验和与签名:
sha256sum --check SHA256SUMS
openssl pkeyutl -verify -pubin -inkey PUBLIC_KEY.pem \
-sigfile plugin_package.zip.sig -rawin -in plugin_package.zip
3. 在 Caido 中,打开 **Plugins**,选择 **Install Package**,然后选择 `plugin_package.zip`。
4. 从 Caido 侧边栏打开 **JS Secret Hunter**。
本仓库的验证密钥是 [PUBLIC_KEY.pem](PUBLIC_KEY.pem)。
## 推荐的首次运行
1. 在 **Caido Scope** 中配置授权目标。
2. 打开插件并运行 **Scan History**。
3. 检查 **Sensitive Files**,然后在 **Findings** 中对各个候选项进行分类。
4. 添加审查笔记,将确认的候选项标记为已审查,并将干扰项归类为误报。
5. 仅当捕获的流量尚未包含所需的 dependencies 时,才启用自动获取 asset。
默认设置最多覆盖 5,000 条最近的 History 条目、每个 response 5 MiB、两个依赖级别、每个根目录 200 个 assets 以及 10,000 个保留的 findings。这些限制是可配置的。
## 开发
要求:
- Node.js 22 或更高版本
- pnpm 11.13.0
- 与 plugin SDK 0.57.1 兼容的 Caido 版本
```
pnpm install --frozen-lockfile
pnpm typecheck
pnpm test:coverage
pnpm lint
pnpm knip
pnpm audit --audit-level high
pnpm build
```
可安装的包生成在 `dist/plugin_package.zip`。贡献和发布期望记录在 [CONTRIBUTING.md](CONTRIBUTING.md) 中。
## العربية
该插件在后台扫描旧的与新的 **HTTP History** 响应,随后将结果呈现在专业的界面中,包含摘要仪表板、Findings、Sensitive Files、Assets、Rules、Reports 以及 Settings。
原始机密值不会被保存;系统仅保留一个掩码值、SHA-256 哈希以及脱敏后的预览。默认情况下,自动获取 JavaScript 文件的功能处于关闭状态,且任何被触发的请求都必须保持在 **Caido Scope** 内。传递 `Cookie` 或 `Authorization` 需要单独授权,并且仅适用于完全相同的来源。
保存设置不会清除结果。仅在明确需要时使用 **Rebuild results** 或 **Clear results**,并在确认为真实泄露之前手动检查每一项结果。
## License
[MIT](LICENSE) © 2026 rust-memo
引用链接发现在概念上受到了 PortSwigger 基于 MIT 许可证的 [js-link-finder](https://github.com/portswigger/js-link-finder) 的启发。Caido 提取器是一个独立的 TypeScript 实现,具备更严格的噪声过滤、template-route 标准化、脱敏处理和有界处理。请参阅 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)。
标签:DLL注入, MITM代理, StruQ, Web安全测试, 安全审计插件, 敏感信息发现, 流量审计, 自动化攻击, 自动化漏洞扫描