Skip to content

CVE Correlation Graph(CVE 关联网) ​

目标:把高难度 CTF 中“版本指纹 -> CVE -> 可利用链”从单点查询升级为关系分析,快速找出同源组件、同类 CWE、同一参考域名/PoC、KEV/EPSS 高优先级目标。

1. 数据来源 ​

  • NVD CVE API 2.0:CVE 元数据、CVSS、CWE、CPE、参考链接。
  • FIRST EPSS:漏洞被利用概率与百分位。
  • CISA KEV:已知在野利用漏洞、厂商/产品、处置期限。
  • GitHub Security Advisories:适合补充生态包、GHSA、补丁 PR。

ReverseLab 的 cve_lookup.py 先生成单个 CVE 报告,cve_graph.py 再聚合为关联网。

2. 标准流程 ​

powershell
# 单点查询
python scripts\ctf-website\cve_lookup.py CVE-2024-36401

# 多 CVE 聚合为关系图
python scripts\ctf-website\cve_graph.py --from-dir reports\ctf-website\cve --out reports\ctf-website\cve-graph

输出:

  • reports/ctf-website/cve-graph/cve_graph_<timestamp>.json
  • reports/ctf-website/cve-graph/cve_graph_<timestamp>.md

3. 关系类型 ​

Edge含义CTF 用途
has_cweCVE 属于某 CWE推测漏洞模式与 payload 方向
affectsCVE 影响某产品将版本指纹映射到攻击面
vendorCVE 关联厂商找同厂商组件链
referenced_byCVE 被某域名引用快速定位 PoC / advisory / patch
in_kevCVE 在 CISA KEV优先验证,通常 exploit maturity 高
epss_bucketEPSS 风险桶排序攻击优先级
same_cwe两个 CVE 同 CWE可迁移 payload 技巧
same_product两个 CVE 同产品可能形成链式利用
same_reference_domain共享参考来源可能同 PoC 作者/同公告链

4. 高级 CTF 使用策略 ​

  1. 版本指纹先落地:从 header、JS bundle、错误页、favicon、package lock、Dockerfile、banner 中提取产品名和版本。
  2. 单 CVE 查询:每个候选版本用 cve_lookup.py 拉 NVD/EPSS/KEV。
  3. 关联网聚类:用 cve_graph.py 找同产品/同 CWE/高 EPSS/KEV。
  4. 链式组合:
    • auth bypass -> SSRF / file read
    • file read -> config/secret leak
    • deserialization/SSTI -> RCE
    • XSS/admin bot -> credential/API token
  5. 只验证架构上可能成立的链:不要因为某 CVE 热门就盲打;必须与目标组件、版本、暴露路由、默认配置相匹配。

5. 证据记录模板 ​

md
## CVE Evidence

- Fingerprint:
- Candidate CVE:
- Version Range:
- EPSS:
- KEV:
- CWE:
- Product/CPE:
- References:
- Local Reproduction:
- Target Validation:
- Chain Hypothesis:

MCP 工具映射 ​

AI Agent 可调用以下 MCP 工具自动完成或加速上述攻击步骤:

攻击步骤MCP 工具说明
CVE 关联分析kb_router按 CVE 关联信号搜索相关知识库技术
知识库文件读取kb_read_file读取知识库技术文件内容

GPL-3.0 · 仅供授权环境下的学习与防御性研究使用