- name
- cve-yu2
- description
- 证据驱动白盒代码审计与CVE级漏洞发现 — 污点追踪、反幻觉验证、攻击路径优先级、WooYun 88,636案例统计。当用户要求代码审计/漏洞验证/误报过滤/CVE发现时触发。
- user-invocable
- true
# CVE-YU2 — 白盒代码审计方法论
> 119个参考文件 | 证据驱动 | Source→Transfer→Sink→Impact 完整链
## 核心价值(本 Skill 独有)
| 能力 | 说明 | 现有技能无覆盖 |
|------|------|:---:|
| **证据分级体系** | Candidate→Reachable→Impact-Proven→Reportable 四级内部 + CONFIRMED/HIGH CONFIDENCE/SUSPECTED/INFO 四档输出 | ✅ |
| **反幻觉框架** | 5条强制验证规则:文件存在性/代码真实性/行号准确性/技术栈一致性/知识库隔离 | ✅ |
| **攻击路径优先级** | 认证(0-3)+复杂度(0-3)+社工(0-3)+利用门槛(0-3)=P0~P3 | ✅ |
| **覆盖率追踪** | 入口点矩阵+Sink矩阵+数据流矩阵,确保≥80%覆盖率 | ✅ |
| **防护完整性验证** | 不只检查"有没有防护",验证"防护每项配置是否完整" | ✅ |
| **WooYun案例库** | 88,636真实漏洞统计:SQLi 27,732/XSS 7,532/命令执行 6,826/逻辑漏洞 8,292/未授权 14,377 | ✅ |
---
## 与现有技能的关系
```
cve-yu2 (白盒代码审计层) shannon-methodology (编排层)
├── 静态深度分析 ├── 五阶段管线
├── CVE级漏洞发现 ├── 5+5 Agent并行
└── 证据链完整验证 └── No Exploit No Report
│ │
└──────────┬───────────────────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
code-safety-audit hack-skills src-hunter
(自动扫描) (SQLi/WAF) (SRC挖洞)
```
**cve-yu2 vs 现有技能**:
- vs `code-safety-audit`: cve-yu2是手动深度审计方法论,code-safety-audit是自动扫描工具
- vs `shannon-methodology`: cve-yu2是白盒代码分析,shannon是黑盒攻击编排
- vs `src-hunter`: cve-yu2针对源码审计+CVE发现,src-hunter针对SRC挖洞
---
## 四档证据标签
### 内部状态
```
Candidate → Reachable → Impact-Proven → Reportable
(疑似) (可达) (影响验证) (可报告)
```
### 用户可见输出
| 标签 | 含义 | CVE提交 |
|------|------|:---:|
| **CONFIRMED** | 完整链 + 默认可达 + 动态验证通过 | ✅ |
| **HIGH CONFIDENCE** | 完整链 + 强对比证据,动态验证受限 | 需说明限制 |
| **SUSPECTED** | 部分链或不确定性可达 | ❌ |
| **INFO** | 加固建议/不可利用/误报排除项 | ❌ |
---
## 五阶段审计流程
### Phase 0: 攻击面测绘(100%完成才进入 Phase 1)
```
1. 模块清单 → 枚举所有 pom.xml/package.json/go.mod/Cargo.toml
2. 入口点清单 → HTTP端点/WebSocket/文件上传/消息队列/定时任务/RPC/反序列化
3. Content-Type敏感入口 → XML(XXE)/JSON(反序列化)/Form(CSRF)/自定义
4. 第三方依赖 → CVE检查
```
### Phase 1: 漏洞类型检查清单
| 漏洞类型 | 关键检查 | 路由到已有Skill |
|---------|---------|---------------|
| XXE | 6项配置逐项验证(disallow-doctype最关键) | `web-app-security` |
| 反序列化 | 所有解析器逐一点检 | `web-app-security` §7 |
| SQL注入 | MyBatis ${}/JDBC+/JPA CriteriaBuilder | `hack-skills` |
| 命令注入 | Runtime.exec/ProcessBuilder/Process | `hack-skills` |
| SSRF | 协议/域名/IP白名单+禁止内网+禁止重定向 | `cloud-attack` |
| 路径遍历 | canonicalPath + ../ \检测 + 符号链接 + ZipSlip | `web-app-security` |
| 文件CRUD | **Create/Read/Update/Delete 全部覆盖** | - |
| IDOR | 所有资源ID参数枚举 | `pentest-agents/hunt-idor` |
| 认证缺陷 | JWT/会话/速率限制/MFA | `api-security-testing` §2 |
### Phase 2: 数据流追踪
```
Source ─→ [净化?] ─→ Transfer ─→ [净化?] ─→ Sink ─→ Impact
↑ ↑
用户可控输入 危险函数执行
```
**Slot类型区分**(关键!):
- SQL-val: 值位置 → 参数化可防
- SQL-ident: 标识符位置(ORDER BY/表名) → 参数化无效,需白名单
- CMD-argument: 命令参数 → 需转义
- FILE-path: 文件路径 → 需规范化
### Phase 3: 防护完整性验证
```
核心原则: 看到防护代码 ≠ 安全
必须验证:
1. 防护是否覆盖所有配置项?(XXE 6项逐检)
2. 防护是否覆盖所有代码路径?(XssFilter是否遗漏getHeader/getQueryString)
3. 防护是否可被绕过?(路径检查是否遗漏..\和URL编码)
4. 防护是否在正确位置?(净化后再拼接?)
```
### Phase 4: 交叉验证
- 每个高危发现构造PoC
- 检查该类漏洞的所有已知绕过
- 检查历史CVE是否完全修复
- 检查是否有变体攻击
---
## 攻击路径优先级评分
```
总分 = 认证(0-3) + 复杂度(0-3) + 社工(0-3) + 利用门槛(0-3)
P0 (10-12分): 无认证+单请求+无社工+浏览器即可 → 立即修复
P1 (7-9分): 需登录+单请求+无社工+工具辅助
P2 (4-6分): 需特权+多步骤+需交互+需exploit
P3 (0-3分): 仅管理员+复杂+需管理员操作+需0day
```
**实际案例**: 公开接口SQL注入(无需登录,curl即可) → P0
管理员RCE(需ADMIN) → P1
虽然RCE比SQLi严重,但攻击路径更短者优先修复
---
## 反幻觉强制规则
```
1. 文件存在性: Glob→Read→确认 后才报告
2. 代码真实性: snippet来自实际Read输出,非记忆
3. 行号准确性: 在文件行数范围内
4. 技术栈一致: 不在Rust项目报Python漏洞
5. 知识库隔离: WooYun案例≠当前项目代码
违规后果:
- 文件不存在 → 发现无效,不计入报告
- 代码编造 → 发现无效,不计入报告
- 行号错误 → 降级为[需验证]
```
---
## WooYun 案例库速查
| 类型 | 案例数 | 核心数据 |
|------|--------|---------|
| SQL注入 | 27,732 | TOP参数: id(56)/sort_id(37)/username(33)/name(30) |
| 未授权访问 | 14,377 | 后台/API/服务三类 |
| 逻辑漏洞 | 8,292 | 密码重置4模式/越权矩阵/验证码绕过 |
| XSS | 7,532 | 输出点分类/上下文绕过/DOM XSS |
| 信息泄露 | 7,337 | 泄露类型/敏感路径/利用链 |
| 命令执行 | 6,826 | 入口点分类/拼接符/编码绕过 |
| 文件遍历 | 2,854 | 参数名/Payload编码/敏感文件 |
| 文件上传 | 2,711 | 检测绕过/解析漏洞/高危CMS |
---
## 模式选择
| 模式 | 适用场景 |
|------|---------|
| `quick` | CI/小范围/高风险扫描 |
| `standard` | 常规安全审计(默认) |
| `deep` | 重要目标/全覆盖/多轮分析 |
| `diff-only` | PR/Patch/Commit变更审计 |
| `cve-grade` | 原创漏洞发现/CVE提交 |
| `exploit-verify` | 疑似漏洞验证 |
| `report-only` | 已验证问题→生成报告 |
> 技术细节全部存储于原始 `Downloads/cve-yu2/cve-yu2/references/` 目录
عرض على GitHub