youwannahackme/CVE-Hunter
GitHub: youwannahackme/CVE-Hunter
一款 Chrome 扩展,输入 CVE ID 即可在单个弹窗中聚合展示 CVSS 评分、EPSS 利用概率、CISA KEV 状态及 GitHub PoC,帮助安全研究人员快速完成漏洞分诊。
Stars: 0 | Forks: 0
# CVE Hunter Pro
一款 Chrome 扩展,用于快速、单次查询的 CVE 漏 bug 分诊 —— 在一个弹窗中集成了 CVSS 评分、EPSS 利用概率、CISA KEV 状态以及 GitHub 概念验证(PoC)发现功能。
  
## 概述
CVE Hunter Pro 接收一个 CVE ID,并在一个请求周期内汇总进行初步严重性评估所需的所有信息:
- **CVSS** 基础分数和严重性,自动选择可用的最新指标版本(v4.0 → v3.1 → v3.0 → v2.0),以仪表盘形式展示并提供攻击向量(AV / AC / AT / PR / UI)细分。
- **EPSS** 利用概率分数和百分位数,因此您不会仅仅依赖 CVSS 进行分诊。
- **CISA KEV** 状态 —— 标记已知被利用的漏洞及其要求的行动截止日期。
- **受影响产品**,从 CPE 匹配字符串中解析。
- **GitHub 概念验证搜索** —— 引用该 CVE ID 的代码库,按 Star 数排序。
- **快速跳转链接**,指向 Exploit-DB、GitHub、Nuclei 模板、Metasploit、VulDB 和 Snyk。
- 来自 NVD 的**参考列表**,按类型标记(补丁、供应商公告、漏洞利用、缓解措施、第三方公告)。
数据来源:[NVD API v2](https://nvd.nist.gov/developers)、[FIRST.org EPSS API](https://www.first.org/epss/)、[GitHub Search API](https://docs.github.com/en/rest/search)。
## 安装说明
1. 下载并解压 `cve-hunter-pro.zip`(或克隆此文件夹)。
2. 在 Chrome 中打开 `chrome://extensions`。
3. 启用 **开发者模式**(右上角的开关)。
4. 点击 **加载已解压的扩展程序** 并选择解压后的 `cve-hunter-pro/` 文件夹。
5. 从工具栏的溢出菜单中固定该扩展程序,以便一键访问。
**要求 Chrome 102+**(使用了在该版本中引入的 `chrome.storage.session`)。
## 配置
打开扩展程序的 **设置**(顶部的齿轮图标)以添加:
| 字段 | 用途 | 是否必填? |
|---|---|---|
| **NVD API Key** | 将 NVD 速率限制从 30 秒 5 次请求提高到 50 次。[在此申请](https://nvd.nist.gov/developers/request-an-api-key)。 | 选填,强烈推荐 |
| **GitHub PAT** | 避免 PoC 查询时触发 GitHub Search API 的速率限制。[创建 token](https://github.com/settings/tokens)(公开搜索不需要任何作用域)。 | 选填 |
两者均通过 `chrome.storage.local` 存储在本地,且除了各自 API 自身的请求标头外,绝不会传输到其他任何地方。
## 使用说明
1. 点击扩展程序图标。
2. 以以下任何格式输入 CVE ID —— 输入内容会自动规范化:
- `CVE-2024-12345`
- `2024-12345`
- `CVE2024-12345`
3. 按 **Enter** 键或点击 **Hunt**。
4. 使用 **Overview / Exploits / References** 标签页,在描述 + 受影响产品、漏洞利用来源和参考链接之间切换。
5. 最近的查询记录会保存在顶部的时钟图标下,方便一键重新搜索。
## 架构
```
cve-hunter-pro/
├── manifest.json # MV3 manifest — permissions, host permissions, icons
├── background.js # Minimal service worker (install/update lifecycle only)
├── popup.html # Popup markup
├── popup.css # Popup styling
├── popup.js # All application logic (fetch, render, state)
└── icons/
├── icon16.png
├── icon48.png
└── icon128.png
```
**无需构建步骤。** 这是纯 HTML/CSS/JS —— 编辑后通过 `chrome://extensions` 重新加载即可。
### 请求流程
1. `fetchNVD(cveId)` —— 必需;如果此步骤失败,弹窗将显示错误状态。
2. `fetchEPSS(cveId)` 和 `fetchGitHub(cveId)` —— 通过 `Promise.all` 并行运行,且允许独立失败,不会阻塞 CVSS/描述的渲染。
3. 结果渲染到 DOM 中,然后被缓存(参见下文的 **Session persistence**)。
### Session 持久化
Chrome 扩展程序弹窗在失去焦点的瞬间就会被销毁 —— 每次打开参考、PoC 或快速链接(均为 `target="_blank"`)的新标签页时都会发生这种情况。为了防止这种情况清空您当前的查询:
- 每次完成的搜索都会缓存到 `chrome.storage.session`(内存中,浏览器重启时清除 —— 而非用于设置/历史记录且永久保留的 `storage.local`)。
- 当前标签页(Overview / Exploits / References)会随之一起缓存。
- `init()` 会尝试在回退到空白状态之前恢复此缓存。
### 权限
| 权限 | 原因 |
|---|---|
| `storage` | 设置(API keys)、搜索历史和会话缓存结果 |
| `clipboardWrite` | “Copy CVE ID”按钮 |
| `host_permissions`: `services.nvd.nist.gov`, `api.first.org`, `api.github.com` | 上述三个数据源 —— 不请求更广泛的宿主访问权限 |
## 更新日志
### 1.1.0
- **修复:** 搜索结果和当前标签页现在会在弹窗销毁期间被缓存并恢复(之前任何出站链接的点击 —— 参考、PoC、快速链接 —— 都会静默丢弃当前的查询)。
- **修复:** 关闭设置现在会返回到之前实际打开的屏幕,而不是总是重置为空白状态。
- **修复:** `--blue-hi` CSS 自定义属性在五种悬停状态下被引用但从未定义,导致这些悬停效果失效。
- **修复:** `manifest.json` 中的图标路径指向了一个在打包后的扩展程序中不存在的 `icons/` 文件夹。
- **更改:** 将所有 emoji 字符替换为一致的 inline SVG 图标集,以实现跨平台的视觉一致性。
- **更改:** 调整了调色板,采用更克制、专业的暗色主题;减少了发光/脉冲/抖动效果。
- 添加了 `minimum_chrome_version: "102"`(`chrome.storage.session` 所需)。
### 1.0.0
- 初始版本。
## 免责声明
本工具提供公开可用的漏洞情报,用于防御性分诊和授权的安全研究。它不托管、生成或执行漏洞利用代码。使用任何链接的概念验证或漏洞利用资源是用户自己的责任,并受其托管网站条款的约束。
标签:CVE查询, GitHub PoC, XSS, 多模态安全, 威胁评估, 数据可视化, 浏览器扩展, 漏洞情报, 自定义脚本, 防御性安全