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, 威胁情报, 开发者工具, 数字签名, 无后门, 暴力破解, 漏洞情报, 自动笔记, 逆向工具, 静态网站