| name | vulnerability-rating |
| description | 漏洞严重性评分 Skill。根据用户描述的漏洞特征,使用简化三维评分体系(可达性、影响范围、利用复杂度)和 CVSS 3.1 标准进行漏洞严重性评估。适用于安全审计、渗透测试报告编写、漏洞定级等场景。当用户要求对漏洞进行评分、计算 CVSS 分数、确定严重等级时自动触发。 |
漏洞严重性评分
根据漏洞的特征信息,计算其严重性等级和 CVSS 3.1 评分。
评分体系
本 Skill 同时支持两种评分体系:
1. 简化三维评分体系(SEVERITY_RATING.md)
基于可达性(R)、影响范围(I)、利用复杂度(C)三维评估:
计算公式:
严重等级 = f(可达性, 影响范围, 利用复杂度)
Score = R × 0.40 + I × 0.35 + C × 0.25
CVSS 映射 = Score / 3.0 × 10.0
可达性 (Reachability, R):
| 分值 | 级别 | 判定标准 |
|---|
| 3 | 高 | 无需认证,HTTP 直接可达 |
| 2 | 中 | 需要普通用户认证 |
| 1 | 低 | 需要管理员权限或内网访问 |
| 0 | 无 | 代码不可达 / 死代码 |
影响范围 (Impact, I):
| 分值 | 级别 | 判定标准 |
|---|
| 3 | 高 | RCE / 任意文件写入 / 完全数据泄露 / 系统沦陷 |
| 2 | 中 | 敏感数据泄露 / 越权操作 / 部分文件读取 |
| 1 | 低 | 有限信息泄露 / 低影响配置读取 |
| 0 | 无 | 无实际安全影响 |
利用复杂度 (Complexity, C):
| 分值 | 级别 | 判定标准 |
|---|
| 3 | 低复杂度 | 单次请求即可利用,无前置条件 |
| 2 | 中复杂度 | 需要构造特殊 payload 或多步操作 |
| 1 | 高复杂度 | 需要特定环境 / 竞态条件 / 链式利用 |
| 0 | 不可利用 | 有效防护,无法绕过 |
等级映射:
| 前缀 | Score 区间 | CVSS 3.1 | 含义 |
|---|
| C | 2.70 - 3.00 | 9.0 - 10.0 | 严重 |
| H | 2.10 - 2.69 | 7.0 - 8.9 | 高危 |
| M | 1.20 - 2.09 | 4.0 - 6.9 | 中危 |
| L | 0.10 - 1.19 | 0.1 - 3.9 | 低危 |
2. CVSS 3.1 标准评分(cvss3.1.md)
使用官方 CVSS 3.1 公式计算,输出向量字符串。
输入信息
用户应提供以下漏洞信息:
- 漏洞类型(如 SQL 注入、XXE、文件上传等)
- 认证要求(是否需要登录/权限)
- 影响类型(RCE、数据泄露、越权等)
- 利用复杂度(单次请求、多步、环境依赖等)
- 可达路径(网络直接可达、需内网访问等)
如果用户未提供完整信息,根据已知信息做出合理假设并在输出中说明。
输出格式
Markdown 表格输出
## 漏洞评分结果
### 简化三维评分
| 项目 | 分值 | 判定理由 |
|------|------|---------|
| 可达性 (R) | {0-3} | {判定理由} |
| 影响范围 (I) | {0-3} | {判定理由} |
| 利用复杂度 (C) | {0-3} | {判定理由} |
**计算结果:**
- Score = {R}×0.40 + {I}×0.35 + {C}×0.25 = {结果}
- CVSS 映射 = {结果} / 3.0 × 10.0 = {cvss分数}
- 严重等级:{🔴C/🟠H/🟡M/🔵L} ({Critical/High/Medium/Low})
### CVSS 3.1 评分
| 指标 | 值 | 说明 |
|------|-----|------|
| 攻击向量 (AV) | {N/A/L/P} | {网络/相邻/本地/物理} |
| 攻击复杂度 (AC) | {L/H} | {低/高} |
| 权限要求 (PR) | {N/L/H} | {无/低/高} |
| 用户交互 (UI) | {N/R} | {无/需要} |
| 范围 (S) | {U/C} | {未改变/改变} |
| 机密性 (C) | {N/L/H} | {无/有限/高} |
| 完整性 (I) | {N/L/H} | {无/有限/高} |
| 可用性 (A) | {N/L/H} | {无/有限/高} |
**CVSS 3.1 Base Score: {分数} ({等级})**
**向量字符串:** `CVSS:3.1/AV:{}/AC:{}/PR:{}/UI:{}/S:{}/C:{}/I:{}/A:{}`
### 漏洞编号
格式:`{等级前缀}-{漏洞类型}-{序号}`
示例:`C-SQL-001`, `H-XXE-002`, `M-AUTH-003`, `L-UPLOAD-001`
漏洞类型代码:
| 类型代码 | 漏洞类型 |
|----------|---------|
| `SQL` | SQL 注入 |
| `XXE` | XXE 外部实体注入 |
| `UPLOAD` | 文件上传 |
| `FILE` | 任意文件读取 |
| `AUTH` | 鉴权绕过 / 越权 |
| `DES` | 设计缺陷 |
| `XSS` | 跨站脚本 |
| `CSRF` | CSRF |
| `OTHER` | 其他 |
### 可利用性标注
根据实际情况标注:
| 标注 | 含义 |
|------|------|
| ✅ 已确认可利用 | 已有 POC 或实际利用记录 |
| ⚠️ 待验证 | 理论存在,需进一步验证 |
| ❌ 不可利用 | 有有效防护,无法绕过 |
| 🔍 环境依赖 | 需要特定环境条件才能利用 |
## 典型评分示例
**场景1:SQL 注入 + 无认证 + String 拼接**
- R=3 (无需认证,HTTP 直接可达)
- I=3 (完全数据泄露/系统沦陷)
- C=3 (单次请求即可利用)
- Score = 3×0.40 + 3×0.35 + 3×0.25 = 3.00
- CVSS = 3.00/3.0×10.0 = 10.0
- 等级:🔴 C (Critical)
- 编号示例:C-SQL-001
**场景2:文件读取 + 有基础路径 + 需认证**
- R=2 (需要普通用户认证)
- I=2 (部分文件读取/敏感数据)
- C=2 (需要构造特殊路径)
- Score = 2×0.40 + 2×0.35 + 2×0.25 = 2.00
- CVSS = 2.00/3.0×10.0 = 6.7
- 等级:🟡 M (Medium)
- 编号示例:M-FILE-001
## 评分流程
1. **收集信息**:从用户输入中提取漏洞特征
2. **三维评分**:根据 SEVERITY_RATING.md 标准确定 R、I、C 分值
3. **计算得分**:使用公式计算 Score 和映射 CVSS
4. **确定等级**:根据 Score 区间确定 C/H/M/L 等级
5. **CVSS 3.1**:根据漏洞特征映射 CVSS 3.1 各维度
6. **生成编号**:根据漏洞类型和等级生成统一编号
7. **输出报告**:按格式输出 Markdown 表格
## 注意事项
- 如果用户未提供完整信息,做合理假设并说明
- 可利用性标注影响评分时,应在输出中注明调整原因
- 漏洞编号在同一批报告中应保证序号唯一性
- 两种评分体系的结果应保持一致(存在差异时以 CVSS 3.1 为准)