disclose/zap-lookup
GitHub: disclose/zap-lookup
一款 OWASP ZAP 插件,通过 lookup.disclose.io API 帮助安全测试人员快速查询目标主机的安全漏洞披露联系方式。
Stars: 0 | Forks: 0
# 漏洞披露联系方式查询 — OWASP ZAP 插件
一款 [OWASP ZAP](https://www.zaproxy.org/) 插件,通过免费的 [lookup.disclose.io](https://lookup.disclose.io) 归属 API,为您正在测试的任何主机查找**安全披露联系方式**。
右键点击某个请求,选择**“查找披露联系方式”**,该插件即可将主机解析为其所属组织以及经过排序的披露渠道列表 —— 包括 `security.txt`、VDP / 赏金猎人计划、PSIRT 目录以及常规联系邮箱 —— 让您准确知道该将发现的问题报告到哪里。
这是 disclose.io [Burp Suite](https://github.com/disclose/burp-lookup) 和 Caido 扩展的开源代理兄弟项目。
## 功能简介
- 在任何 HTTP 消息(History、Sites 树等)上添加**“查找披露联系方式”**右键菜单项。
- 调用 `POST https://lookup.disclose.io/api/lookup` 发送主机信息,并在消息对话框中显示结果:
- **归属信息** — 所属组织、母公司、所在司法管辖区。
- **排序的联系方式** — 优先展示已验证的渠道,然后按置信度(类型、值、已验证/置信度)排序。
## 隐私说明
该插件**仅将主机字符串**(例如 `github.com`)发送至 lookup.disclose.io。它绝不会传输您所选 HTTP 消息的请求行、Header、Cookie、参数或 Body。该 API 是免费的、开放 CORS 的,且无需身份验证。
简短的内存缓存(5 分钟 TTL)和 15 秒的请求超时设置,可防止其频繁请求 API,并避免在离线时导致 UI 卡死。
查找请求会**直接**发送至 lookup.disclose.io(通过 `java.net.http`),而不是通过 ZAP 的 HTTP 发送器 —— 因此它永远不会出现在您的 ZAP History 或 Sites 树中,也不会产生任何扫描流量。其代价是:它使用的是 JVM 的默认网络设置,而非 ZAP 配置的上游/企业代理,因此在受限的出口网络环境中,该插件需要具有对 `lookup.disclose.io` 的直接出站访问权限。
## 构建
要求具有 JDK 17+ 和 [Gradle](https://gradle.org/install/) 8.x(CI 会自动提供 Gradle —— 无需在本地安装):
```
gradle jarZapAddOn
```
`.zap` 插件文件将生成在 `build/` 目录下(CI 会匹配该文件,并在每次 push 时将其作为 `zap-lookup-addon` 构件上传)。
## 在 ZAP 中安装
1. 构建 `.zap` 文件(如上所述),或从最新的 [GitHub Actions 构建](../../actions)中下载。
2. 在 ZAP 中:点击 **File → Load Add-on File…** 并选择构建好的 `.zap` 文件,或者将 `.zap` 文件放入 ZAP 的 `plugin` 目录然后重启。
3. 右键点击任意请求即可使用。
## 使用方法
1. 在任何存在 HTTP 请求的地方 —— History 标签页、Sites 树 —— **右键点击**。
2. 选择 **“查找披露联系方式”**。
3. 随后弹出的对话框将显示该主机的归属信息和排序后的披露联系方式。
## 开发
```
src/main/java/io/disclose/zaplookup/
ExtensionZapLookup.java # ExtensionAdaptor entry point (hook)
LookupPopupMenuItem.java # PopupMenuItemHttpMessageContainer — the right-click item
LookupClient.java # java.net.http.HttpClient call + cache + timeout
LookupResult.java # typed view of the API response (Gson)
LookupException.java # UI-safe lookup failure
```
网络请求在后台 daemon 线程中运行(绝不占用 Swing EDT);对话框则通过 `SwingUtilities.invokeLater` 在 EDT 上呈现。
CI (`.github/workflows/build.yml`) 会在每次 push 时构建 `.zap` 文件并将其作为构件上传。
## 许可证
[MIT](LICENSE) © disclose.io
标签:JS文件枚举, OWASP ZAP, 信息查询, 后台面板检测, 域名枚举, 插件, 漏洞披露, 网络管理