opencode-api-security-testing 2.1.0 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SKILL.md +1797 -0
- package/core/advanced_recon.py +788 -0
- package/core/agentic_analyzer.py +445 -0
- package/core/analyzers/api_parser.py +210 -0
- package/core/analyzers/response_analyzer.py +212 -0
- package/core/analyzers/sensitive_finder.py +184 -0
- package/core/api_fuzzer.py +422 -0
- package/core/api_interceptor.py +525 -0
- package/core/api_parser.py +955 -0
- package/core/browser_tester.py +479 -0
- package/core/cloud_storage_tester.py +1330 -0
- package/core/collectors/__init__.py +23 -0
- package/core/collectors/api_path_finder.py +300 -0
- package/core/collectors/browser_collect.py +645 -0
- package/core/collectors/browser_collector.py +411 -0
- package/core/collectors/http_client.py +111 -0
- package/core/collectors/js_collector.py +490 -0
- package/core/collectors/js_parser.py +780 -0
- package/core/collectors/url_collector.py +319 -0
- package/core/context_manager.py +682 -0
- package/core/deep_api_tester_v35.py +844 -0
- package/core/deep_api_tester_v55.py +366 -0
- package/core/dynamic_api_analyzer.py +532 -0
- package/core/http_client.py +179 -0
- package/core/models.py +296 -0
- package/core/orchestrator.py +890 -0
- package/core/prerequisite.py +227 -0
- package/core/reasoning_engine.py +1042 -0
- package/core/response_classifier.py +606 -0
- package/core/runner.py +938 -0
- package/core/scan_engine.py +599 -0
- package/core/skill_executor.py +435 -0
- package/core/skill_executor_v2.py +670 -0
- package/core/skill_executor_v3.py +704 -0
- package/core/smart_analyzer.py +687 -0
- package/core/strategy_pool.py +707 -0
- package/core/testers/auth_tester.py +264 -0
- package/core/testers/idor_tester.py +200 -0
- package/core/testers/sqli_tester.py +211 -0
- package/core/testing_loop.py +655 -0
- package/core/utils/base_path_dict.py +255 -0
- package/core/utils/payload_lib.py +167 -0
- package/core/utils/ssrf_detector.py +220 -0
- package/core/verifiers/vuln_verifier.py +536 -0
- package/package.json +17 -13
- package/references/asset-discovery.md +119 -612
- package/references/graphql-guidance.md +65 -641
- package/references/intake.md +84 -0
- package/references/report-template.md +131 -38
- package/references/rest-guidance.md +55 -526
- package/references/severity-model.md +52 -264
- package/references/test-matrix.md +65 -263
- package/references/validation.md +53 -400
- package/scripts/postinstall.js +46 -0
- package/agents/cyber-supervisor.md +0 -55
- package/agents/probing-miner.md +0 -42
- package/agents/resource-specialist.md +0 -31
- package/commands/api-security-testing-scan.md +0 -59
- package/commands/api-security-testing-test.md +0 -49
- package/commands/api-security-testing.md +0 -72
- package/tsconfig.json +0 -17
|
@@ -1,288 +1,76 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Severity Model
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
严重性校准标准。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Severity Levels
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|------|-----|------|
|
|
9
|
-
| **攻击向量 (AV)** | | |
|
|
10
|
-
| | Network (N) | 远程攻击,无需前置条件 |
|
|
11
|
-
| | Adjacent (A) | 需要与目标网络相邻 |
|
|
12
|
-
| | Local (L) | 需要本地访问 |
|
|
13
|
-
| | Physical (P) | 需要物理接触 |
|
|
14
|
-
| **攻击复杂度 (AC)** | | |
|
|
15
|
-
| | Low (L) | 无特殊条件 |
|
|
16
|
-
| | High (H) | 需要特殊条件(绕过防护等) |
|
|
17
|
-
| **所需权限 (PR)** | | |
|
|
18
|
-
| | None (N) | 无需权限 |
|
|
19
|
-
| | Low (L) | 需要普通用户权限 |
|
|
20
|
-
| | High (H) | 需要管理员权限 |
|
|
21
|
-
| **用户交互 (UI)** | | |
|
|
22
|
-
| | None (N) | 无需用户交互 |
|
|
23
|
-
| | Required (R) | 需要用户操作 |
|
|
24
|
-
| **影响范围 (S)** | | |
|
|
25
|
-
| | Unchanged (U) | 不影响其他组件 |
|
|
26
|
-
| | Changed (C) | 影响其他组件 |
|
|
27
|
-
| **机密性影响 (C)** | | |
|
|
28
|
-
| | High (H) | 完全泄露机密信息 |
|
|
29
|
-
| | Low (L) | 部分泄露 |
|
|
30
|
-
| | None (N) | 无影响 |
|
|
31
|
-
| **完整性影响 (I)** | | |
|
|
32
|
-
| | High (H) | 完全破坏数据完整性 |
|
|
33
|
-
| | Low (L) | 部分破坏 |
|
|
34
|
-
| | None (N) | 无影响 |
|
|
35
|
-
| **可用性影响 (A)** | | |
|
|
36
|
-
| | High (H) | 完全拒绝服务 |
|
|
37
|
-
| | Low (L) | 部分拒绝服务 |
|
|
38
|
-
| | None (N) | 无影响 |
|
|
7
|
+
### Critical
|
|
39
8
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
### SQL 注入
|
|
45
|
-
|
|
46
|
-
| 场景 | 向量 | 评分 | 说明 |
|
|
47
|
-
|------|------|------|------|
|
|
48
|
-
| UNION 注入,获取管理员密码 | `AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N` | 8.2 | 远程、无特殊条件、密码泄露 |
|
|
49
|
-
| UNION 注入,普通用户数据 | `AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N` | 5.3 | 仅泄露普通数据 |
|
|
50
|
-
| 盲注,时间延迟 | `AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L` | 5.3 | 仅 DoS 影响 |
|
|
51
|
-
| SA 账户 RCE | `AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H` | 10.0 | 完全控制 |
|
|
52
|
-
|
|
53
|
-
### XSS
|
|
54
|
-
|
|
55
|
-
| 场景 | 向量 | 评分 | 说明 |
|
|
56
|
-
|------|------|------|------|
|
|
57
|
-
| 存储型,获取管理员 Cookie | `AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N` | 8.1 | Session 劫持 |
|
|
58
|
-
| 反射型,诱骗点击 | `AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N` | 4.3 | 需要用户交互 |
|
|
59
|
-
| DOM 型,自执行 | `AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N` | 5.3 | 无需交互 |
|
|
60
|
-
| 管理员后台存储 XSS | `AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N` | 7.2 | 管理员权限触发 |
|
|
61
|
-
|
|
62
|
-
### IDOR
|
|
63
|
-
|
|
64
|
-
| 场景 | 向量 | 评分 | 说明 |
|
|
65
|
-
|------|------|------|------|
|
|
66
|
-
| 查看他人订单 | `AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N` | 4.3 | 低权限、仅读取 |
|
|
67
|
-
| 修改他人资料 | `AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:N` | 5.9 | 修改权限 |
|
|
68
|
-
| 删除他人账户 | `AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L` | 6.5 | 删除账户 |
|
|
69
|
-
| 垂直越权,管理后台 | `AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H` | 7.5 | 权限提升 |
|
|
70
|
-
|
|
71
|
-
### 认证绕过
|
|
72
|
-
|
|
73
|
-
| 场景 | 向量 | 评分 | 说明 |
|
|
74
|
-
|------|------|------|------|
|
|
75
|
-
| JWT alg:none 伪造 | `AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N` | 8.2 | 身份伪造 |
|
|
76
|
-
| 暴力破解无限制 | `AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N` | 7.5 | 可获取任意账号 |
|
|
77
|
-
| Session 固定 | `AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N` | 8.2 | Session 劫持 |
|
|
78
|
-
| 默认口令 | `AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N` | 8.2 | 直接登录 |
|
|
79
|
-
|
|
80
|
-
### 敏感信息泄露
|
|
81
|
-
|
|
82
|
-
| 场景 | 向量 | 评分 | 说明 |
|
|
83
|
-
|------|------|------|------|
|
|
84
|
-
| API 密钥泄露 | `AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N` | 7.5 | 密钥可滥用 |
|
|
85
|
-
| 密码明文存储返回 | `AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N` | 7.5 | 密码泄露 |
|
|
86
|
-
| 内网 IP 泄露 | `AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N` | 3.7 | 仅情报 |
|
|
87
|
-
| 用户个人信息泄露 | `AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N` | 5.3 | PII 泄露 |
|
|
88
|
-
|
|
89
|
-
### SSRF
|
|
90
|
-
|
|
91
|
-
| 场景 | 向量 | 评分 | 说明 |
|
|
92
|
-
|------|------|------|------|
|
|
93
|
-
| 探测内网 Web | `AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N` | 3.7 | 仅探测 |
|
|
94
|
-
| 读取元数据 | `AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N` | 7.5 | 云凭据泄露 |
|
|
95
|
-
| 端口扫描内网 | `AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L` | 5.3 | DoS |
|
|
96
|
-
| 访问内部数据库 | `AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H` | 10.0 | 完全控制 |
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
## 业务影响评估
|
|
101
|
-
|
|
102
|
-
### 影响等级定义
|
|
103
|
-
|
|
104
|
-
| 等级 | 影响范围 | 业务后果 | 示例 |
|
|
105
|
-
|------|----------|----------|------|
|
|
106
|
-
| **严重** | 全局 | 业务中断/数据大规模泄露 | 数据库被拖库 |
|
|
107
|
-
| **高** | 部门/系统 | 核心功能受损/敏感数据泄露 | 管理员账号被获取 |
|
|
108
|
-
| **中** | 部分用户 | 功能受限/用户数据泄露 | 个人信息被查看 |
|
|
109
|
-
| **低** | 单个用户 | 轻微影响/可忽略 | 页面显示异常 |
|
|
110
|
-
| **信息** | 情报 | 无直接影响 | 服务器版本泄露 |
|
|
111
|
-
|
|
112
|
-
### 业务场景修正
|
|
113
|
-
|
|
114
|
-
| 业务类型 | 高风险场景 | 评分修正 |
|
|
115
|
-
|----------|------------|----------|
|
|
116
|
-
| 金融系统 | 支付/转账/账户操作 | +1.0 |
|
|
117
|
-
| 医疗系统 | 病历/处方/个人信息 | +1.0 |
|
|
118
|
-
| 电商系统 | 订单/支付/用户信息 | +0.5 |
|
|
119
|
-
| 企业内部系统 | 管理员权限/财务数据 | +0.5 |
|
|
120
|
-
| 社交平台 | 私信/相册/位置信息 | +0.5 |
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
## 修复优先级定义
|
|
125
|
-
|
|
126
|
-
### P0 - 紧急
|
|
127
|
-
|
|
128
|
-
```
|
|
129
|
-
条件:
|
|
130
|
-
- CVSS 9.0-10.0
|
|
131
|
-
- 远程代码执行
|
|
132
|
-
- 数据完全泄露
|
|
133
|
-
- 身份伪造
|
|
134
|
-
|
|
135
|
-
修复时间:24 小时内
|
|
136
|
-
修复方式:紧急上线修复
|
|
9
|
+
直接导致:
|
|
10
|
+
- 未授权的管理员访问
|
|
11
|
+
- 敏感数据大规模泄露
|
|
12
|
+
- 完整的系统入侵
|
|
137
13
|
|
|
138
14
|
示例:
|
|
139
|
-
-
|
|
140
|
-
-
|
|
141
|
-
-
|
|
142
|
-
```
|
|
15
|
+
- 认证绕过获取管理员权限
|
|
16
|
+
- SQL 注入导致数据库泄露
|
|
17
|
+
- 硬编码凭证
|
|
143
18
|
|
|
144
|
-
###
|
|
19
|
+
### High
|
|
145
20
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
-
|
|
149
|
-
-
|
|
150
|
-
- 权限绕过
|
|
151
|
-
- 账户入侵
|
|
152
|
-
|
|
153
|
-
修复时间:1 周内
|
|
154
|
-
修复方式:计划排期修复
|
|
21
|
+
可导致:
|
|
22
|
+
- 未授权的用户数据访问
|
|
23
|
+
- 权限提升
|
|
24
|
+
- 关键业务逻辑绕过
|
|
155
25
|
|
|
156
26
|
示例:
|
|
157
|
-
-
|
|
158
|
-
-
|
|
159
|
-
-
|
|
160
|
-
- 存储型 XSS
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
### P2 - 中优先级
|
|
27
|
+
- IDOR 导致其他用户数据泄露
|
|
28
|
+
- 垂直越权获取管理员功能
|
|
29
|
+
- 敏感 API 密钥泄露
|
|
164
30
|
|
|
165
|
-
|
|
166
|
-
条件:
|
|
167
|
-
- CVSS 4.0-6.9
|
|
168
|
-
- 功能受限
|
|
169
|
-
- 部分数据泄露
|
|
170
|
-
- 可利用性较低
|
|
31
|
+
### Medium
|
|
171
32
|
|
|
172
|
-
|
|
173
|
-
|
|
33
|
+
可导致:
|
|
34
|
+
- 有限的用户数据影响
|
|
35
|
+
- 信息泄露
|
|
36
|
+
- 安全控制降低
|
|
174
37
|
|
|
175
38
|
示例:
|
|
176
|
-
-
|
|
177
|
-
-
|
|
178
|
-
-
|
|
179
|
-
- 有限制的暴力破解
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
### P3 - 低优先级
|
|
39
|
+
- 敏感信息在错误消息中暴露
|
|
40
|
+
- 账户枚举
|
|
41
|
+
- 暴力攻击防护缺失
|
|
183
42
|
|
|
184
|
-
|
|
185
|
-
条件:
|
|
186
|
-
- CVSS 1.0-3.9
|
|
187
|
-
- 轻微问题
|
|
188
|
-
- 难以利用
|
|
43
|
+
### Low
|
|
189
44
|
|
|
190
|
-
|
|
191
|
-
|
|
45
|
+
影响有限:
|
|
46
|
+
- 信息披露
|
|
47
|
+
- 次要配置问题
|
|
48
|
+
- 低风险误报
|
|
192
49
|
|
|
193
50
|
示例:
|
|
194
|
-
-
|
|
195
|
-
-
|
|
196
|
-
-
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
---
|
|
200
|
-
|
|
201
|
-
## 漏洞报告模板
|
|
202
|
-
|
|
203
|
-
```markdown
|
|
204
|
-
## 漏洞报告
|
|
205
|
-
|
|
206
|
-
### 基本信息
|
|
207
|
-
- **漏洞编号**: VULN-2026-0001
|
|
208
|
-
- **漏洞类型**: SQL 注入
|
|
209
|
-
- **漏洞名称**: /api/user 参数存在 UNION 注入
|
|
210
|
-
- **发现时间**: 2026-04-03
|
|
211
|
-
- **报告人**: Agent
|
|
212
|
-
- **目标系统**: https://target.com
|
|
213
|
-
|
|
214
|
-
### 漏洞详情
|
|
215
|
-
|
|
216
|
-
#### 漏洞描述
|
|
217
|
-
/api/user 接口的 id 参数存在 SQL 注入漏洞,攻击者可通过 UNION 注入获取数据库中的敏感信息,包括用户账号和密码哈希。
|
|
218
|
-
|
|
219
|
-
#### 影响范围
|
|
220
|
-
- 影响所有使用该接口的用户
|
|
221
|
-
- 可获取数据库管理员权限
|
|
222
|
-
- 可能导致数据完全泄露
|
|
223
|
-
|
|
224
|
-
#### CVSS 3.1 评分
|
|
225
|
-
- **向量**: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
|
|
226
|
-
- **评分**: 8.2 (High)
|
|
227
|
-
|
|
228
|
-
| 度量 | 值 |
|
|
229
|
-
|------|-----|
|
|
230
|
-
| Attack Vector | Network |
|
|
231
|
-
| Attack Complexity | Low |
|
|
232
|
-
| Privileges Required | None |
|
|
233
|
-
| User Interaction | None |
|
|
234
|
-
| Scope | Unchanged |
|
|
235
|
-
| Confidentiality | High |
|
|
236
|
-
| Integrity | High |
|
|
237
|
-
| Availability | None |
|
|
238
|
-
|
|
239
|
-
### 复现步骤
|
|
240
|
-
|
|
241
|
-
1. 访问目标 URL:`https://target.com/api/user?id=1`
|
|
242
|
-
2. 正常响应:`{"userId": 1, "name": "张三"}`
|
|
243
|
-
3. 构造 Payload:`https://target.com/api/user?id=1 UNION SELECT 1,2,username,4,5,password FROM users--`
|
|
244
|
-
4. 获取所有用户数据
|
|
245
|
-
|
|
246
|
-
### 修复建议
|
|
247
|
-
|
|
248
|
-
1. 使用参数化查询,避免 SQL 拼接
|
|
249
|
-
2. 对用户输入进行严格过滤和验证
|
|
250
|
-
3. 数据库账户使用最小权限原则
|
|
251
|
-
4. 部署 Web 应用防火墙 (WAF)
|
|
252
|
-
|
|
253
|
-
### 参考文献
|
|
254
|
-
|
|
255
|
-
- OWASP SQL Injection
|
|
256
|
-
- CWE-89: SQL Injection
|
|
257
|
-
```
|
|
51
|
+
- 调试头暴露
|
|
52
|
+
- OPTIONS 方法可用
|
|
53
|
+
- 详细版本信息泄露
|
|
258
54
|
|
|
259
|
-
|
|
55
|
+
### Informational
|
|
260
56
|
|
|
261
|
-
|
|
57
|
+
非安全问题:
|
|
58
|
+
- 最佳实践建议
|
|
59
|
+
- 文档改进建议
|
|
262
60
|
|
|
263
|
-
|
|
264
|
-
□ 漏洞识别
|
|
265
|
-
□ 确认漏洞类型
|
|
266
|
-
□ 确认影响范围
|
|
267
|
-
□ 收集复现步骤
|
|
61
|
+
## Confidence Levels
|
|
268
62
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
□ 计算完整性影响
|
|
277
|
-
□ 计算可用性影响
|
|
63
|
+
| Level | 标准 | 要求证据 |
|
|
64
|
+
|-------|------|----------|
|
|
65
|
+
| Confirmed | 完全验证,有 PoC | 完整请求/响应 |
|
|
66
|
+
| High | 强指标 | 请求+响应+影响分析 |
|
|
67
|
+
| Medium | 中等指标 | 观察到的行为 |
|
|
68
|
+
| Low | 弱指标 | 单一响应 |
|
|
69
|
+
| Hypothesis | 理论推断 | 需要进一步调查 |
|
|
278
70
|
|
|
279
|
-
|
|
280
|
-
□ 确定业务类型
|
|
281
|
-
□ 评估数据敏感度
|
|
282
|
-
□ 计算业务修正分数
|
|
71
|
+
## 校准原则
|
|
283
72
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
```
|
|
73
|
+
1. **保守校准**: 证据不确定时,倾向较低严重性
|
|
74
|
+
2. **基于影响**: 考虑真实世界影响
|
|
75
|
+
3. **可利用性**: 考虑利用难度和前提条件
|
|
76
|
+
4. **业务上下文**: 考虑受影响资产的价值
|
|
@@ -1,284 +1,86 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Test Matrix
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
构建优先化的安全测试矩阵。
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|----------|----------|--------|-------------|----------|
|
|
7
|
-
| **SQL 注入** | | | | |
|
|
8
|
-
| | 错误注入 | 参数值 | `'`, `1' OR '1'='1` | 数据库错误信息 |
|
|
9
|
-
| | Union 注入 | 参数值 | `1' UNION SELECT...` | 联合查询结果 |
|
|
10
|
-
| | 盲注 | 参数值 | `' AND SLEEP(5)--` | 响应时间延迟 |
|
|
11
|
-
| | 报错注入 | 参数值 | `1' AND EXTRACTVALUE...` | 错误信息回显 |
|
|
12
|
-
| **XSS** | | | | |
|
|
13
|
-
| | 反射型 | URL 参数 | `<script>alert(1)</script>` | alert 执行 |
|
|
14
|
-
| | 存储型 | 表单输入 | `<script>alert(1)</script>` | 持久化存储 |
|
|
15
|
-
| | DOM 型 | JS 变量 | `javascript:alert(1)` | DOM 操作触发 |
|
|
16
|
-
| **IDOR** | | | | |
|
|
17
|
-
| | 水平越权 | 资源 ID | 修改 `userId=2` | 访问他人数据 |
|
|
18
|
-
| | 垂直越权 | 权限参数 | 修改 `role=admin` | 提升权限 |
|
|
19
|
-
| **认证绕过** | | | | |
|
|
20
|
-
| | JWT 伪造 | Token | `alg:none` | 使用伪造 token |
|
|
21
|
-
| | Session 固定 | Cookie | 登录前后 Session 对比 | Session 未变 |
|
|
22
|
-
| | 暴力破解 | 登录接口 | 密码字典 | 账号锁定 |
|
|
23
|
-
| **敏感信息泄露** | | | | |
|
|
24
|
-
| | 密码明文 | 响应内容 | - | 响应包含 password |
|
|
25
|
-
| | 密钥泄露 | JS/响应 | - | API Key/Secret |
|
|
26
|
-
| | 路径遍历 | 文件参数 | `../../../etc/passwd` | 文件内容泄露 |
|
|
27
|
-
| **CSRF** | | | | |
|
|
28
|
-
| | Token 缺失 | 表单提交 | 无 CSRF Token | 请求成功 |
|
|
29
|
-
| | Token 可预测 | Token 生成 | 分析 Token 规律 | 预测生成 |
|
|
30
|
-
| **SSRF** | | | | |
|
|
31
|
-
| | 内网访问 | URL 参数 | `http://localhost/` | 访问内网 |
|
|
32
|
-
| | 云元数据 | URL 参数 | `http://169.254.169.254/` | 获取元数据 |
|
|
5
|
+
## 维度
|
|
33
6
|
|
|
34
|
-
|
|
7
|
+
### 1. 认证 (Authentication)
|
|
35
8
|
|
|
36
|
-
|
|
9
|
+
| 测试项 | 说明 | 优先级 |
|
|
10
|
+
|--------|------|--------|
|
|
11
|
+
| 弱密码策略 | 密码强度要求是否合理 | high |
|
|
12
|
+
| 暴力攻击防护 | 登录是否有速率限制 | critical |
|
|
13
|
+
| 认证绕过 | 是否能绕过认证获取访问 | critical |
|
|
14
|
+
| Token 强度 | JWT/会话 token 是否安全生成 | high |
|
|
15
|
+
| 密码重置 | 密码重置流程是否安全 | high |
|
|
37
16
|
|
|
38
|
-
###
|
|
17
|
+
### 2. 授权 (Authorization)
|
|
39
18
|
|
|
40
|
-
|
|
|
41
|
-
|
|
42
|
-
|
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
|
|
|
46
|
-
|
|
|
19
|
+
| 测试项 | 说明 | 优先级 |
|
|
20
|
+
|--------|------|--------|
|
|
21
|
+
| IDOR | 对象引用是否可预测 | critical |
|
|
22
|
+
| 水平越权 | 能否访问其他用户数据 | critical |
|
|
23
|
+
| 垂直越权 | 能否获取更高权限 | critical |
|
|
24
|
+
| 功能级访问 | 是否有功能级权限检查 | high |
|
|
25
|
+
| 隐式授权 | trust boundary 是否正确 | high |
|
|
47
26
|
|
|
48
|
-
###
|
|
27
|
+
### 3. 输入处理
|
|
49
28
|
|
|
50
|
-
|
|
|
51
|
-
|
|
52
|
-
|
|
|
53
|
-
|
|
|
54
|
-
|
|
|
55
|
-
|
|
|
29
|
+
| 测试项 | 说明 | 优先级 |
|
|
30
|
+
|--------|------|--------|
|
|
31
|
+
| SQL 注入 | 参数化查询是否正确使用 | critical |
|
|
32
|
+
| XSS | 输出是否正确转义 | high |
|
|
33
|
+
| 命令注入 | 系统命令是否可注入 | critical |
|
|
34
|
+
| 路径遍历 | 文件路径是否可操控 | high |
|
|
35
|
+
| 参数污染 | 请求参数是否可污染 | medium |
|
|
56
36
|
|
|
57
|
-
|
|
37
|
+
### 4. 敏感数据
|
|
58
38
|
|
|
59
|
-
|
|
39
|
+
| 测试项 | 说明 | 优先级 |
|
|
40
|
+
|--------|------|--------|
|
|
41
|
+
| 敏感数据暴露 | API 是否暴露敏感信息 | high |
|
|
42
|
+
| 过度数据返回 | 是否返回过多数据 | medium |
|
|
43
|
+
| 存储敏感数据 | 日志/缓存是否记录敏感数据 | medium |
|
|
44
|
+
| 加密 | 敏感数据是否加密传输/存储 | high |
|
|
60
45
|
|
|
61
|
-
###
|
|
46
|
+
### 5. 业务逻辑
|
|
62
47
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
48
|
+
| 测试项 | 说明 | 优先级 |
|
|
49
|
+
|--------|------|--------|
|
|
50
|
+
| 流程绕过 | 能否跳过关键步骤 | high |
|
|
51
|
+
| 条件竞争 | 并发请求是否安全 | medium |
|
|
52
|
+
| 批量操作 | 批量请求是否有合理限制 | medium |
|
|
53
|
+
| 逆向推理 | 能否从响应推断未授权数据 | medium |
|
|
68
54
|
|
|
69
|
-
|
|
70
|
-
□ Web 服务器识别
|
|
71
|
-
□ 应用框架识别
|
|
72
|
-
□ 前端技术识别
|
|
73
|
-
□ 后端技术识别
|
|
55
|
+
### 6. 速率和配额
|
|
74
56
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
57
|
+
| 测试项 | 说明 | 优先级 |
|
|
58
|
+
|--------|------|--------|
|
|
59
|
+
| 速率限制 | 是否有合理的速率限制 | high |
|
|
60
|
+
| 配额管理 | 资源配额是否正确实施 | medium |
|
|
61
|
+
| 服务降级 | DoS 场景下行为是否合理 | low |
|
|
80
62
|
|
|
81
|
-
###
|
|
63
|
+
### 7. 文档和配置
|
|
82
64
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
65
|
+
| 测试项 | 说明 | 优先级 |
|
|
66
|
+
|--------|------|--------|
|
|
67
|
+
| OpenAPI 暴露 | 是否意外暴露 OpenAPI 文档 | medium |
|
|
68
|
+
| 调试端点 | 调试端点是否在生产环境暴露 | medium |
|
|
69
|
+
| CORS 配置 | CORS 配置是否安全 | medium |
|
|
70
|
+
| HTTP 方法 | 是否限制了不安全的 HTTP 方法 | low |
|
|
88
71
|
|
|
89
|
-
|
|
90
|
-
□ 路径爆破
|
|
91
|
-
□ 参数发现
|
|
92
|
-
□ 头部探测
|
|
72
|
+
## 优先级规则
|
|
93
73
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
```
|
|
74
|
+
1. **Critical**: 直接导致未授权访问或数据泄露
|
|
75
|
+
2. **High**: 可能导致安全控制失效
|
|
76
|
+
3. **Medium**: 降低安全边界
|
|
77
|
+
4. **Low**: 信息泄露或次要问题
|
|
99
78
|
|
|
100
|
-
|
|
79
|
+
## 测试方法
|
|
101
80
|
|
|
102
|
-
|
|
103
|
-
□ 认证测试
|
|
104
|
-
□ JWT 测试
|
|
105
|
-
□ Session 测试
|
|
106
|
-
□ 暴力破解测试
|
|
81
|
+
### 对于每个发现
|
|
107
82
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
□ 输入验证测试
|
|
114
|
-
□ SQL 注入
|
|
115
|
-
□ XSS
|
|
116
|
-
□ 命令注入
|
|
117
|
-
□ SSRF
|
|
118
|
-
|
|
119
|
-
□ 业务逻辑测试
|
|
120
|
-
□ 支付逻辑
|
|
121
|
-
□ 订单流程
|
|
122
|
-
□ 验证码逻辑
|
|
123
|
-
|
|
124
|
-
□ 安全配置测试
|
|
125
|
-
□ CORS
|
|
126
|
-
□ CSRF
|
|
127
|
-
□ 限流
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
### 阶段 4: 验证
|
|
131
|
-
|
|
132
|
-
```
|
|
133
|
-
□ 漏洞确认
|
|
134
|
-
□ 复现测试
|
|
135
|
-
□ 证据收集
|
|
136
|
-
□ 风险评估
|
|
137
|
-
|
|
138
|
-
□ 误报排除
|
|
139
|
-
□ 响应对比
|
|
140
|
-
□ 环境确认
|
|
141
|
-
□ WAF 识别
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
## HTTP 方法测试矩阵
|
|
147
|
-
|
|
148
|
-
| 方法 | 常用场景 | 测试重点 | 特殊测试 |
|
|
149
|
-
|------|----------|----------|----------|
|
|
150
|
-
| GET | 查询、获取 | IDOR、敏感泄露、注入 | 参数遍历 |
|
|
151
|
-
| POST | 创建、登录 | SQL注入、XSS、CSRF | 请求体篡改 |
|
|
152
|
-
| PUT | 全量更新 | 资源篡改、越权 | 数据替换 |
|
|
153
|
-
| DELETE | 删除操作 | 越权删除 | IDOR |
|
|
154
|
-
| PATCH | 部分更新 | 字段覆盖 | 部分数据篡改 |
|
|
155
|
-
| HEAD | 探测 | - | 响应头信息 |
|
|
156
|
-
| OPTIONS | 探测 | CORS | 方法枚举 |
|
|
157
|
-
| TRACE | 调试 | - | XST |
|
|
158
|
-
|
|
159
|
-
---
|
|
160
|
-
|
|
161
|
-
## 响应状态码分析矩阵
|
|
162
|
-
|
|
163
|
-
| 状态码 | 含义 | 测试意义 | 可能指示 |
|
|
164
|
-
|--------|------|----------|----------|
|
|
165
|
-
| 200 | 成功 | ✅ 可分析 | 正常响应或信息泄露 |
|
|
166
|
-
| 201 | 创建成功 | ✅ 可分析 | 资源创建成功 |
|
|
167
|
-
| 204 | 无内容 | ⚠️ 注意 | 可能是空响应 |
|
|
168
|
-
| 301 | 永久重定向 | ⚠️ 跟踪 | 跳转目标可能不同域 |
|
|
169
|
-
| 302 | 临时重定向 | ⚠️ 跟踪 | 可能传递敏感信息 |
|
|
170
|
-
| 400 | 请求错误 | ⚠️ 检查 | 请求格式/参数错误 |
|
|
171
|
-
| 401 | 未授权 | ✅ 认证相关 | 需要登录 |
|
|
172
|
-
| 403 | 禁止访问 | ⚠️ 分析 | 权限不足或IP封禁 |
|
|
173
|
-
| 404 | 未找到 | ✅ 探测 | 路径/资源不存在 |
|
|
174
|
-
| 429 | 请求过多 | ⚠️ 限流 | 有速率限制 |
|
|
175
|
-
| 500 | 服务器错误 | ✅ 分析 | 可能泄露调试信息 |
|
|
176
|
-
| 502 | 网关错误 | ⚠️ 代理 | 后端服务问题 |
|
|
177
|
-
| 503 | 服务不可用 | ⚠️ DoS | 可能是攻击效果 |
|
|
178
|
-
|
|
179
|
-
---
|
|
180
|
-
|
|
181
|
-
## 漏洞风险评分矩阵
|
|
182
|
-
|
|
183
|
-
### 严重性等级
|
|
184
|
-
|
|
185
|
-
| 等级 | 评分范围 | 说明 | 处理要求 |
|
|
186
|
-
|------|----------|------|----------|
|
|
187
|
-
| Critical | 9.0-10.0 | 远程代码执行、数据完全泄露 | 立即修复 |
|
|
188
|
-
| High | 7.0-8.9 | 敏感数据泄露、权限绕过 | 24小时内修复 |
|
|
189
|
-
| Medium | 4.0-6.9 | 信息泄露、功能滥用 | 1周内修复 |
|
|
190
|
-
| Low | 1.0-3.9 | 轻微问题 | 1月内修复 |
|
|
191
|
-
| Info | 0-0.9 | 情报收集 | 可选修复 |
|
|
192
|
-
|
|
193
|
-
### CVSS 向量参考
|
|
194
|
-
|
|
195
|
-
```
|
|
196
|
-
Critical (9.0-10.0):
|
|
197
|
-
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
|
|
198
|
-
|
|
199
|
-
High (7.0-8.9):
|
|
200
|
-
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
|
|
201
|
-
|
|
202
|
-
Medium (4.0-6.9):
|
|
203
|
-
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
|
|
204
|
-
|
|
205
|
-
Low (1.0-3.9):
|
|
206
|
-
- CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:N/A:N
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
---
|
|
210
|
-
|
|
211
|
-
## 漏洞链优先级矩阵
|
|
212
|
-
|
|
213
|
-
### 高价值漏洞链
|
|
214
|
-
|
|
215
|
-
| 漏洞链 | 利用步骤 | 潜在影响 | 优先级 |
|
|
216
|
-
|--------|----------|----------|--------|
|
|
217
|
-
| 弱口令 → 后台Getshell | 1. 暴力破解获取账号<br>2. 后台上传Webshell | 服务器完全控制 | P0 |
|
|
218
|
-
| 用户枚举 → 密码爆破 | 1. 枚举有效用户<br>2. 爆破密码<br>3. 登录获取Token | 账号入侵 | P0 |
|
|
219
|
-
| IDOR → 水平越权 | 1. 修改资源ID<br>2. 访问他人数据 | 数据泄露 | P1 |
|
|
220
|
-
| JWT 破解 → 伪造身份 | 1. 收集JWT<br>2. 破解弱密钥<br>3. 伪造任意用户 | 身份伪造 | P0 |
|
|
221
|
-
| SSRF → 内网探测 | 1. SSRF探测内网<br>2. 获取元数据<br>3. 横向移动 | 内网渗透 | P1 |
|
|
222
|
-
|
|
223
|
-
### 中等价值漏洞链
|
|
224
|
-
|
|
225
|
-
| 漏洞链 | 利用步骤 | 潜在影响 | 优先级 |
|
|
226
|
-
|--------|----------|----------|--------|
|
|
227
|
-
| SQL注入 → 数据泄露 | 1. 发现注入点<br>2. UNION提取数据 | 数据库泄露 | P1 |
|
|
228
|
-
| 文件上传 → Getshell | 1. 上传恶意文件<br>2. 访问文件Getshell | 服务器控制 | P1 |
|
|
229
|
-
| XSS存储 → 账户接管 | 1. 存储XSS<br>2. 窃取Cookie<br>3. Session劫持 | 账户劫持 | P2 |
|
|
230
|
-
|
|
231
|
-
---
|
|
232
|
-
|
|
233
|
-
## 测试检查清单
|
|
234
|
-
|
|
235
|
-
### 前置检查
|
|
236
|
-
|
|
237
|
-
```
|
|
238
|
-
□ 获取书面授权
|
|
239
|
-
□ 确定测试范围
|
|
240
|
-
□ 约定测试时间窗口
|
|
241
|
-
□ 准备测试账号(如需要)
|
|
242
|
-
□ 确认回滚方案
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
### 侦察阶段
|
|
246
|
-
|
|
247
|
-
```
|
|
248
|
-
□ 目标域名收集
|
|
249
|
-
□ IP 地址确认
|
|
250
|
-
□ 技术栈识别
|
|
251
|
-
□ 入口点发现
|
|
252
|
-
□ 敏感路径探测
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
### 采集阶段
|
|
256
|
-
|
|
257
|
-
```
|
|
258
|
-
□ JS 文件收集
|
|
259
|
-
□ API 端点提取
|
|
260
|
-
□ Swagger/OpenAPI 发现
|
|
261
|
-
□ 敏感信息收集
|
|
262
|
-
□ 云存储地址发现
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
### 测试阶段
|
|
266
|
-
|
|
267
|
-
```
|
|
268
|
-
□ 认证机制测试
|
|
269
|
-
□ 授权机制测试
|
|
270
|
-
□ 输入验证测试
|
|
271
|
-
□ 业务逻辑测试
|
|
272
|
-
□ 安全配置测试
|
|
273
|
-
□ API 专项测试
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
### 报告阶段
|
|
277
|
-
|
|
278
|
-
```
|
|
279
|
-
□ 漏洞确认
|
|
280
|
-
□ 证据收集
|
|
281
|
-
□ 影响评估
|
|
282
|
-
□ 修复建议
|
|
283
|
-
□ 复现步骤
|
|
284
|
-
```
|
|
83
|
+
1. **验证**: 确认问题存在
|
|
84
|
+
2. **影响评估**: 确定现实影响
|
|
85
|
+
3. **置信度**: 基于证据的置信级别
|
|
86
|
+
4. **修复建议**: 具体可操作的修复方案
|