eavil666/cve-poc-mapper
GitHub: eavil666/cve-poc-mapper
将 NVD、CISA KEV、EPSS 漏洞情报与 GitHub 公开 PoC 自动映射并以静态网站呈现的聚合平台。
Stars: 0 | Forks: 0
# CVE PoC 情报聚合平台
自动将 GitHub 上的真实 CVE Exploit/PoC 仓库映射到 NVD 和 CISA 情报,以纯静态网站形式呈现。
## 功能特性
- **多源聚合**:整合 NVD、CISA KEV、EPSS、GitHub PoC 数据
- **自动化更新**:每日自动同步最新漏洞情报
- **智能映射**:多策略 CVE-PoC 映射 + 置信度评分
- **静态部署**:纯静态网站,部署到 GitHub Pages
- **全文搜索**:基于 Pagefind 的客户端搜索
## 快速开始
### 1. Fork 此仓库
点击右上角 Fork 按钮,将仓库 Fork 到你的账号。
### 2. 配置 Secrets
进入 `Settings` > `Secrets and variables` > `Actions`,添加以下 Secrets:
| Secret 名称 | 说明 | 获取方式 |
|------------|------|----------|
| `NVD_API_KEY` | NVD API 密钥(可选但推荐) | [申请地址](https://nvd.nist.gov/developers/request-an-api-key) |
| `GITHUB_PAT` | GitHub Personal Access Token | [创建地址](https://github.com/settings/tokens),需要 `repo` 和 `public_repo` 权限 |
### 3. 启用 GitHub Pages
进入 `Settings` > `Pages`,设置:
- **Source**: `gh-pages` 分支
- **Folder**: `/ (root)`
### 4. 手动触发构建
进入 `Actions` > `Build and Deploy CVE Platform` > `Run workflow`,点击运行。
### 5. 访问网站
构建完成后,访问:
https://<你的用户名>.github.io/cve-poc-mapper/
## 项目结构
cve-poc-mapper/
├── .github/
│ └── workflows/
│ └── build-and-deploy.yml # GitHub Actions 工作流
├── scripts/
│ ├── fetch_data.py # 数据获取脚本
│ ├── cve_mapper.py # CVE-PoC 映射引擎
│ ├── generate_content.py # Hugo 内容生成
│ └── requirements.txt # Python 依赖
├── layouts/
│ ├── _default/
│ │ └── baseof.html # 基础模板
│ └── cve/
│ ├── list.html # CVE 列表页
│ └── single.html # CVE 详情页
├── content/
│ ├── _index.md # 首页
│ ├── cve/ # CVE 内容(自动生成)
│ ├── kev/ # KEV 专区
│ └── stats/ # 统计页
├── data/ # 数据文件(构建时生成)
├── hugo.yaml # Hugo 配置
└── README.md # 本文件
## 数据源说明
| 数据源 | 类型 | 更新频率 | 说明 |
|--------|------|----------|------|
| NVD API 2.0 | REST API | 每 2 小时 | 国家漏洞数据库 |
| CISA KEV | JSON Feed | 每日 | 已知被利用漏洞目录 |
| EPSS | 公开 API | 每日 | 漏洞利用预测评分 |
| GitHub PoC | API + Clone | 每日 | 公开的 PoC/Exploit 仓库 |
## 本地开发
### 环境要求
- Python 3.11+
- Hugo Extended 0.121+
- Node.js 18+(用于 Pagefind)
### 步骤
# 1. 克隆仓库
git clone https://github.com/yourusername/cve-poc-mapper.git
cd cve-poc-mapper
# 2. 安装 Python 依赖
pip install -r scripts/requirements.txt
# 3. 设置环境变量(可选)
export NVD_API_KEY="your-api-key"
export GITHUB_PAT="your-pat"
# 4. 获取数据
python scripts/fetch_data.py
# 5. 映射 CVE-PoC
python scripts/cve_mapper.py
# 6. 生成内容
python scripts/generate_content.py
# 7. 本地预览(需要先安装 Hugo)
hugo server -D
# 8. 构建静态文件
hugo --minify
# 9. 生成搜索索引
npx pagefind --site public
访问 `http://localhost:1313` 预览。
## 自定义配置
### 修改站点信息
编辑 `hugo.yaml`:
baseURL: https://your-domain.com/
title: 你的站点名称
params:
description: 你的站点描述
### 添加更多 PoC 源
编辑 `scripts/cve_mapper.py`,在 `REPO_SOURCES` 中添加:
REPO_SOURCES = [
{
"name": "your-repo-name",
"url": "https://github.com/user/repo",
"type": "directory_per_cve" # 或 "indexed", "flat"
}
]
## 常见问题
### Q: 为什么构建失败?
**A:** 检查以下几点:
1. GitHub Actions 权限是否正确
2. GitHub Pages 是否已启用
3. Secrets 是否配置正确
4. 查看 Actions 日志定位具体错误
### Q: 如何加快构建速度?
**A:**
1. 申请 NVD API Key(无 Key 时速率限制严格)
2. 使用 GitHub PAT(提高 GitHub API 限制)
3. 调整 `fetch_data.py` 中的时间范围(减少数据量)
### Q: 数据多久更新一次?
**A:** 默认每日 UTC 02:00 自动更新(可在 `.github/workflows/build-and-deploy.yml` 中修改 cron 表达式)。
### Q: 如何添加更多数据源?
**A:**
1. 在 `scripts/fetch_data.py` 中添加新的 Client 类
2. 在 `main()` 函数中调用
3. 更新 `generate_content.py` 以包含新数据
## 许可证
MIT License
## 贡献
欢迎提交 Issue 和 Pull Request!
## 声明
本项目仅用于安全研究和漏洞情报聚合,不得用于非法用途。所有 PoC 代码来源于公开 GitHub 仓库,本项目不对其安全性负责。使用前请自行评估风险。
标签:CVE, GitHub Actions, MITM代理, PoC, Python, XSS, 威胁情报, 开发者工具, 数字签名, 无后门, 暴力破解, 漏洞情报, 自动笔记, 逆向工具, 静态网站