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)发现功能。 ![Manifest Version](https://img.shields.io/badge/manifest-v3-blue) ![Version](https://img.shields.io/badge/version-1.1.0-informational) ![Chrome](https://img.shields.io/badge/chrome-102%2B-yellow) ## 概述 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, 多模态安全, 威胁评估, 数据可视化, 浏览器扩展, 漏洞情报, 自定义脚本, 防御性安全