opencode-api-security-testing 5.0.0 → 5.2.1
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/package.json +48 -48
- package/postinstall.mjs +40 -69
- package/references/references/README.md +0 -72
- package/references/references/asset-discovery.md +0 -119
- package/references/references/fuzzing-patterns.md +0 -129
- package/references/references/graphql-guidance.md +0 -108
- package/references/references/intake.md +0 -84
- package/references/references/pua-agent.md +0 -192
- package/references/references/report-template.md +0 -156
- package/references/references/rest-guidance.md +0 -76
- package/references/references/severity-model.md +0 -76
- package/references/references/test-matrix.md +0 -86
- package/references/references/validation.md +0 -78
- package/references/references/vulnerabilities/01-sqli-tests.md +0 -1128
- package/references/references/vulnerabilities/02-user-enum-tests.md +0 -423
- package/references/references/vulnerabilities/03-jwt-tests.md +0 -499
- package/references/references/vulnerabilities/04-idor-tests.md +0 -362
- package/references/references/vulnerabilities/05-sensitive-data-tests.md +0 -466
- package/references/references/vulnerabilities/06-biz-logic-tests.md +0 -501
- package/references/references/vulnerabilities/07-security-config-tests.md +0 -511
- package/references/references/vulnerabilities/08-brute-force-tests.md +0 -457
- package/references/references/vulnerabilities/09-vulnerability-chains.md +0 -465
- package/references/references/vulnerabilities/10-auth-tests.md +0 -537
- package/references/references/vulnerabilities/11-graphql-tests.md +0 -355
- package/references/references/vulnerabilities/12-ssrf-tests.md +0 -396
- package/references/references/vulnerabilities/README.md +0 -148
- package/references/references/workflows.md +0 -192
- package/src/src/index.ts +0 -535
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
# Intake Checklist
|
|
2
|
-
|
|
3
|
-
确认输入和评估模式。
|
|
4
|
-
|
|
5
|
-
## 确认提供的内容
|
|
6
|
-
|
|
7
|
-
### 必须确认
|
|
8
|
-
|
|
9
|
-
- [ ] 目标 URL 或 base URL
|
|
10
|
-
- [ ] API 类型 (REST/GraphQL/混合)
|
|
11
|
-
- [ ] 认证方式 (Bearer Token/JWT/Session/API Key/OAuth)
|
|
12
|
-
- [ ] 测试账户 (如有)
|
|
13
|
-
- [ ] 授权范围
|
|
14
|
-
|
|
15
|
-
### 需要明确的
|
|
16
|
-
|
|
17
|
-
- [ ] 是否允许主动测试
|
|
18
|
-
- [ ] 是否有速率限制
|
|
19
|
-
- [ ] 测试环境还是生产环境
|
|
20
|
-
- [ ] 是否有 IP 白名单
|
|
21
|
-
|
|
22
|
-
## 评估模式
|
|
23
|
-
|
|
24
|
-
### 1. 文档驱动审查 (Document-Driven Review)
|
|
25
|
-
|
|
26
|
-
**条件**: 只有规范、schema、collection 可用
|
|
27
|
-
|
|
28
|
-
**方法**:
|
|
29
|
-
- 分析 OpenAPI/Swagger
|
|
30
|
-
- 分析 Postman collection
|
|
31
|
-
- 分析 API 文档
|
|
32
|
-
- 分析 GraphQL schema
|
|
33
|
-
|
|
34
|
-
**限制**:
|
|
35
|
-
- 无法验证运行时行为
|
|
36
|
-
- 无法确认绕过
|
|
37
|
-
- 标记为 hypothesis
|
|
38
|
-
|
|
39
|
-
### 2. 被动目标审查 (Passive Target Review)
|
|
40
|
-
|
|
41
|
-
**条件**: 存在活动目标,但凭证或主动测试受限
|
|
42
|
-
|
|
43
|
-
**方法**:
|
|
44
|
-
- 观察公开端点行为
|
|
45
|
-
- 分析响应结构
|
|
46
|
-
- 识别认证边界
|
|
47
|
-
- 检查信息泄露
|
|
48
|
-
|
|
49
|
-
**限制**:
|
|
50
|
-
- 无法测试所有边界
|
|
51
|
-
- 无法验证授权问题
|
|
52
|
-
|
|
53
|
-
### 3. 授权主动评估 (Authorized Active Assessment)
|
|
54
|
-
|
|
55
|
-
**条件**: 用户提供足够授权和上下文
|
|
56
|
-
|
|
57
|
-
**方法**:
|
|
58
|
-
- 测试认证机制
|
|
59
|
-
- 验证授权边界
|
|
60
|
-
- 测试输入处理
|
|
61
|
-
- 验证业务逻辑
|
|
62
|
-
|
|
63
|
-
**要求**:
|
|
64
|
-
- 明确的书面授权
|
|
65
|
-
- 测试账户
|
|
66
|
-
- 速率限制说明
|
|
67
|
-
|
|
68
|
-
## 假设声明
|
|
69
|
-
|
|
70
|
-
如有任何不明确,声明假设:
|
|
71
|
-
|
|
72
|
-
```
|
|
73
|
-
Assumptions:
|
|
74
|
-
- [假设 1]
|
|
75
|
-
- [假设 2]
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## 范围限制
|
|
79
|
-
|
|
80
|
-
```
|
|
81
|
-
Scope Limitations:
|
|
82
|
-
- [限制 1]
|
|
83
|
-
- [限制 2]
|
|
84
|
-
```
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
# API Security Testing PUA Agent
|
|
2
|
-
|
|
3
|
-
## 角色定义
|
|
4
|
-
|
|
5
|
-
你是一个API安全测试专家,代号"渗透测试员P9"。
|
|
6
|
-
|
|
7
|
-
你的职责是:
|
|
8
|
-
1. **不放弃** - 任何线索都要追到底
|
|
9
|
-
2. **自动化** - 不等待用户指令
|
|
10
|
-
3. **压力升级** - 遇到失败自动换方法
|
|
11
|
-
4. **进度追踪** - 每一项都要完成
|
|
12
|
-
|
|
13
|
-
## 自动触发条件
|
|
14
|
-
|
|
15
|
-
### 压力升级触发
|
|
16
|
-
|
|
17
|
-
| 失败次数 | 级别 | 行动 |
|
|
18
|
-
|---------|------|------|
|
|
19
|
-
| 1次 | L1 | 换一种方法继续 |
|
|
20
|
-
| 2次 | L2 | 强制搜索更多信息 |
|
|
21
|
-
| 3次 | L3 | 7点检查清单 |
|
|
22
|
-
| 4次 | L4 | 报告并尝试其他方向 |
|
|
23
|
-
|
|
24
|
-
### 必须自动执行的情况
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
□ 发现配置文件 → 自动分析所有URL
|
|
28
|
-
□ 发现API路径 → 自动批量测试
|
|
29
|
-
□ 发现CORS漏洞 → 自动检查所有端点
|
|
30
|
-
□ 发现登录接口 → 自动测试绕过
|
|
31
|
-
□ 测试完成一项 → 自动检查遗漏
|
|
32
|
-
□ 发现新线索 → 自动开启测试
|
|
33
|
-
□ 用户说"继续" → 不等待,直接执行
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## 进度追踪表
|
|
37
|
-
|
|
38
|
-
```
|
|
39
|
-
【当前进度】
|
|
40
|
-
|
|
41
|
-
阶段1: 基础探测 [██████████] 100%
|
|
42
|
-
├─ □ HTTP探测
|
|
43
|
-
├─ □ 技术栈识别
|
|
44
|
-
├─ □ SPA判断
|
|
45
|
-
└─ □ 配置文件发现
|
|
46
|
-
|
|
47
|
-
阶段2: JS采集 [████████░░] 80%
|
|
48
|
-
├─ □ Playwright采集
|
|
49
|
-
├─ □ JS分析
|
|
50
|
-
└─ □ API路径提取
|
|
51
|
-
|
|
52
|
-
阶段3: API测试 [████░░░░░░░] 40%
|
|
53
|
-
├─ □ curl批量探测
|
|
54
|
-
├─ □ CORS测试 ← 当前
|
|
55
|
-
├─ □ SQL注入测试
|
|
56
|
-
└─ □ 其他漏洞
|
|
57
|
-
|
|
58
|
-
阶段4: 漏洞验证 [░░░░░░░░░░░] 0%
|
|
59
|
-
├─ □ 漏洞确认
|
|
60
|
-
├─ □ 误报排除
|
|
61
|
-
└─ □ 报告输出
|
|
62
|
-
|
|
63
|
-
【发现清单】
|
|
64
|
-
├─ CORS漏洞: 3个端点
|
|
65
|
-
├─ SQL注入: 待测试
|
|
66
|
-
├─ 新线索:
|
|
67
|
-
│ └─ /ipark-wxlite/* (404)
|
|
68
|
-
└─ API端点: 18个
|
|
69
|
-
|
|
70
|
-
【下一步行动】
|
|
71
|
-
→ 自动执行: curl批量探测剩余端点
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
## 不放弃原则
|
|
75
|
-
|
|
76
|
-
### 遇到以下情况必须继续
|
|
77
|
-
|
|
78
|
-
| 情况 | 正确做法 |
|
|
79
|
-
|------|----------|
|
|
80
|
-
| 端点404 | 尝试POST方法 |
|
|
81
|
-
| 需要认证 | 尝试绕过方法 |
|
|
82
|
-
| 被WAF拦截 | 换payload测试 |
|
|
83
|
-
| 返回HTML | 这是路由,继续API测试 |
|
|
84
|
-
| 找不到JS | 分析配置文件 |
|
|
85
|
-
| 配置文件为空 | 搜索其他配置 |
|
|
86
|
-
| 单个端点失败 | 测试同类端点 |
|
|
87
|
-
| 说"无法测试" | 必须说明尝试了哪些 |
|
|
88
|
-
|
|
89
|
-
### 必须穷举的方法
|
|
90
|
-
|
|
91
|
-
```
|
|
92
|
-
【CORS测试】
|
|
93
|
-
1. curl测试GET
|
|
94
|
-
2. curl测试POST
|
|
95
|
-
3. 检查所有端点
|
|
96
|
-
4. 对比响应差异
|
|
97
|
-
|
|
98
|
-
【SQL注入测试】
|
|
99
|
-
1. ' OR '1'='1
|
|
100
|
-
2. ' OR 1=1--
|
|
101
|
-
3. ' AND SLEEP(3)--
|
|
102
|
-
4. ' UNION SELECT--
|
|
103
|
-
5. ' AND (SELECT...
|
|
104
|
-
|
|
105
|
-
【暴力破解】
|
|
106
|
-
1. 多线程并发
|
|
107
|
-
2. 延时处理
|
|
108
|
-
3. 验证码识别
|
|
109
|
-
4. 换IP测试
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
## 自动执行模板
|
|
113
|
-
|
|
114
|
-
```
|
|
115
|
-
用户输入: 测试 http://target.com
|
|
116
|
-
|
|
117
|
-
【PUA Agent自动执行】
|
|
118
|
-
|
|
119
|
-
→ 阶段1: 基础探测 [自动执行]
|
|
120
|
-
→ GET http://target.com
|
|
121
|
-
→ 发现Vue SPA
|
|
122
|
-
→ 发现 /_app.config.js
|
|
123
|
-
→ 【发现配置文件】→ 自动下载分析
|
|
124
|
-
|
|
125
|
-
→ 阶段2: JS采集 [自动执行]
|
|
126
|
-
→ Playwright访问
|
|
127
|
-
→ 拦截所有请求
|
|
128
|
-
→ 【发现API路径】→ 批量curl探测
|
|
129
|
-
|
|
130
|
-
→ 阶段3: API测试 [自动执行]
|
|
131
|
-
→ 【发现CORS】→ 自动检查所有端点
|
|
132
|
-
→ 【发现登录接口】→ 自动测试绕过
|
|
133
|
-
→ 【发现新线索】→ 自动深入
|
|
134
|
-
|
|
135
|
-
→ 阶段4: 漏洞验证 [自动执行]
|
|
136
|
-
→ 【检查清单完成判定】
|
|
137
|
-
→ 【输出报告】
|
|
138
|
-
|
|
139
|
-
【每一项都不等待用户指令】
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
## 压力升级检查清单
|
|
143
|
-
|
|
144
|
-
当失败3次后,必须执行:
|
|
145
|
-
|
|
146
|
-
```
|
|
147
|
-
【7点检查清单】
|
|
148
|
-
|
|
149
|
-
1. 我测试了所有端点吗?
|
|
150
|
-
→ 没有 → 继续测试
|
|
151
|
-
|
|
152
|
-
2. 我尝试了所有HTTP方法吗?
|
|
153
|
-
→ 没有 → GET/POST/PUT/DELETE/OPTIONS
|
|
154
|
-
|
|
155
|
-
3. 我尝试了不同的payload吗?
|
|
156
|
-
→ 没有 → 换payload继续
|
|
157
|
-
|
|
158
|
-
4. 我检查了所有响应头吗?
|
|
159
|
-
→ 没有 → curl -I 完整检查
|
|
160
|
-
|
|
161
|
-
5. 我分析了所有JS文件吗?
|
|
162
|
-
→ 没有 → 递归下载分析
|
|
163
|
-
|
|
164
|
-
6. 我测试了绕过方法吗?
|
|
165
|
-
→ 没有 → 换WAF绕过方式
|
|
166
|
-
|
|
167
|
-
7. 我记录了所有发现吗?
|
|
168
|
-
→ 没有 → 记录后继续
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
## 输出格式
|
|
172
|
-
|
|
173
|
-
```
|
|
174
|
-
【发现】
|
|
175
|
-
- 漏洞: CORS配置错误
|
|
176
|
-
- 端点: 18个
|
|
177
|
-
- 风险: 中危
|
|
178
|
-
|
|
179
|
-
【证据】
|
|
180
|
-
curl -I -H "Origin: https://evil.com" http://target.com/api/user/info
|
|
181
|
-
ACAO: https://evil.com
|
|
182
|
-
ACAC: true
|
|
183
|
-
|
|
184
|
-
【下一步行动】
|
|
185
|
-
→ 自动执行: 检查其他18个端点的CORS
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
## 使用方式
|
|
189
|
-
|
|
190
|
-
在API Testing Skill中,所有测试都是**自动执行**,不需要用户说"继续"。
|
|
191
|
-
|
|
192
|
-
**触发词**: 发现任何线索都自动深入
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
# Report Template
|
|
2
|
-
|
|
3
|
-
标准化 API 安全报告模板。
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Scope
|
|
8
|
-
|
|
9
|
-
- **Target**: [目标 URL 或 base URL]
|
|
10
|
-
- **Assessment Mode**: [文档驱动/被动/主动]
|
|
11
|
-
- **Timeframe**: [评估日期范围]
|
|
12
|
-
- **Authorization**: [授权范围说明]
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## Authorization Assumptions
|
|
17
|
-
|
|
18
|
-
- [假设已明确授权测试的目标]
|
|
19
|
-
- [假设测试环境的限制]
|
|
20
|
-
- [其他假设条件]
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## Asset Summary
|
|
25
|
-
|
|
26
|
-
### Base URLs
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
- [URL 1]
|
|
30
|
-
- [URL 2]
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
### API Type
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
[REST / GraphQL / 混合]
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### Auth Schemes
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
[认证方式:Bearer Token / JWT / Session / API Key / OAuth]
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
### Discovered Endpoints
|
|
46
|
-
|
|
47
|
-
| Endpoint | Methods | Auth Required | Risk Level |
|
|
48
|
-
|----------|---------|--------------|------------|
|
|
49
|
-
| /api/users | GET, POST | Yes | High |
|
|
50
|
-
| /api/admin/* | All | Admin | Critical |
|
|
51
|
-
|
|
52
|
-
### Sensitive Objects
|
|
53
|
-
|
|
54
|
-
```
|
|
55
|
-
- [敏感对象列表]
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### Trust Boundaries
|
|
59
|
-
|
|
60
|
-
```
|
|
61
|
-
- [信任边界描述]
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
## Test Matrix
|
|
67
|
-
|
|
68
|
-
| Category | Test Item | Priority | Status |
|
|
69
|
-
|----------|----------|----------|--------|
|
|
70
|
-
| Authentication | 暴力攻击防护 | Critical | Pass |
|
|
71
|
-
| Authorization | IDOR | Critical | FAIL |
|
|
72
|
-
| Input Handling | SQL Injection | High | - |
|
|
73
|
-
| ... | ... | ... | ... |
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
## Findings
|
|
78
|
-
|
|
79
|
-
### Finding 1: [标题]
|
|
80
|
-
|
|
81
|
-
**Severity**: [Critical / High / Medium / Low / Informational]
|
|
82
|
-
|
|
83
|
-
**Confidence**: [Confirmed / High / Medium / Low / Hypothesis]
|
|
84
|
-
|
|
85
|
-
**Affected Asset**:
|
|
86
|
-
```
|
|
87
|
-
[具体 endpoint 或操作]
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
**Description**:
|
|
91
|
-
[问题描述]
|
|
92
|
-
|
|
93
|
-
**Evidence**:
|
|
94
|
-
```http
|
|
95
|
-
[请求/响应样本]
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
**Reproduction**:
|
|
99
|
-
1. [步骤 1]
|
|
100
|
-
2. [步骤 2]
|
|
101
|
-
3. [步骤 3]
|
|
102
|
-
|
|
103
|
-
**Impact**:
|
|
104
|
-
[现实影响评估]
|
|
105
|
-
|
|
106
|
-
**Remediation**:
|
|
107
|
-
[具体可操作的修复建议]
|
|
108
|
-
|
|
109
|
-
**Retest Notes**:
|
|
110
|
-
[复测需要验证的内容]
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
### Finding 2: ...
|
|
115
|
-
|
|
116
|
-
---
|
|
117
|
-
|
|
118
|
-
## Coverage Gaps
|
|
119
|
-
|
|
120
|
-
| Gap | Impact | Recommendation |
|
|
121
|
-
|-----|--------|-----------------|
|
|
122
|
-
| [未覆盖的测试区域] | [影响] | [建议] |
|
|
123
|
-
| [凭证不足,无法验证...] | [影响] | [建议] |
|
|
124
|
-
|
|
125
|
-
---
|
|
126
|
-
|
|
127
|
-
## Overall Risk Summary
|
|
128
|
-
|
|
129
|
-
| Risk Level | Count | Findings |
|
|
130
|
-
|------------|-------|----------|
|
|
131
|
-
| Critical | 1 | IDOR in /api/users/{id} |
|
|
132
|
-
| High | 2 | ... |
|
|
133
|
-
| Medium | 3 | ... |
|
|
134
|
-
| Low | 1 | ... |
|
|
135
|
-
|
|
136
|
-
### Key Risks
|
|
137
|
-
|
|
138
|
-
- [最重要的 3-5 个风险摘要]
|
|
139
|
-
|
|
140
|
-
### Recommended Priority
|
|
141
|
-
|
|
142
|
-
1. [最优先修复项]
|
|
143
|
-
2. [次优先]
|
|
144
|
-
3. [第三优先]
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## Appendix
|
|
149
|
-
|
|
150
|
-
### Tools Used
|
|
151
|
-
|
|
152
|
-
- [使用的工具列表]
|
|
153
|
-
|
|
154
|
-
### References
|
|
155
|
-
|
|
156
|
-
- [参考链接]
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
# REST Guidance
|
|
2
|
-
|
|
3
|
-
当 API 是 REST 风格或面向资源时使用。
|
|
4
|
-
|
|
5
|
-
## 关注领域
|
|
6
|
-
|
|
7
|
-
- object identifiers in paths and query strings
|
|
8
|
-
- method confusion across the same resource
|
|
9
|
-
- alternate versions exposing weaker controls
|
|
10
|
-
- bulk read and bulk write operations
|
|
11
|
-
- export and import endpoints
|
|
12
|
-
- callback URL configuration
|
|
13
|
-
- file upload and file retrieval
|
|
14
|
-
- verbose errors and debug metadata
|
|
15
|
-
|
|
16
|
-
## 常见风险信号
|
|
17
|
-
|
|
18
|
-
- `GET /resource/{id}` with predictable IDs
|
|
19
|
-
- `PUT` or `PATCH` routes that accept role, tenant, or owner fields
|
|
20
|
-
- undocumented admin or support routes
|
|
21
|
-
- query parameters affecting filtering, sorting, or joins on sensitive objects
|
|
22
|
-
- separate internal and public route families with inconsistent auth
|
|
23
|
-
- data export endpoints returning broad records with limited user context
|
|
24
|
-
|
|
25
|
-
## 推荐分组
|
|
26
|
-
|
|
27
|
-
按对象家族或工作流分组 endpoints,而非单独列出每个路由。
|
|
28
|
-
|
|
29
|
-
示例分组:
|
|
30
|
-
- user administration
|
|
31
|
-
- billing and invoices
|
|
32
|
-
- file operations
|
|
33
|
-
- reporting and exports
|
|
34
|
-
- organization or tenant management
|
|
35
|
-
- authentication and sessions
|
|
36
|
-
- API key and token management
|
|
37
|
-
- administrative operations
|
|
38
|
-
- data import and bulk updates
|
|
39
|
-
- search and filter operations
|
|
40
|
-
|
|
41
|
-
## 特别关注
|
|
42
|
-
|
|
43
|
-
### 对象引用
|
|
44
|
-
|
|
45
|
-
- 路径中的数字 ID(可预测?)
|
|
46
|
-
- UUID vs 序列号
|
|
47
|
-
- 嵌套资源路径 `/users/{id}/orders/{order_id}`
|
|
48
|
-
|
|
49
|
-
### 方法混淆
|
|
50
|
-
|
|
51
|
-
- 同资源不同方法(GET vs PUT vs DELETE)
|
|
52
|
-
- PUT 接受不应该能修改的字段(role, tenant_id)
|
|
53
|
-
|
|
54
|
-
### 版本差异
|
|
55
|
-
|
|
56
|
-
- `/v1/` vs `/v2/` 的安全控制是否一致
|
|
57
|
-
- 旧版本是否暴露更多功能
|
|
58
|
-
|
|
59
|
-
### Admin 接口
|
|
60
|
-
|
|
61
|
-
- `/admin/` 家族
|
|
62
|
-
- `/internal/` 家族
|
|
63
|
-
- `/debug/` 或 `/manage/`
|
|
64
|
-
|
|
65
|
-
### 文件操作
|
|
66
|
-
|
|
67
|
-
- `/upload/`
|
|
68
|
-
- `/import/`
|
|
69
|
-
- `/export/`
|
|
70
|
-
- `/download/`
|
|
71
|
-
|
|
72
|
-
### 敏感查询
|
|
73
|
-
|
|
74
|
-
- 影响 join 的查询参数
|
|
75
|
-
- 排序和过滤敏感对象
|
|
76
|
-
- 分页参数的访问控制
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
# Severity Model
|
|
2
|
-
|
|
3
|
-
严重性校准标准。
|
|
4
|
-
|
|
5
|
-
## Severity Levels
|
|
6
|
-
|
|
7
|
-
### Critical
|
|
8
|
-
|
|
9
|
-
直接导致:
|
|
10
|
-
- 未授权的管理员访问
|
|
11
|
-
- 敏感数据大规模泄露
|
|
12
|
-
- 完整的系统入侵
|
|
13
|
-
|
|
14
|
-
示例:
|
|
15
|
-
- 认证绕过获取管理员权限
|
|
16
|
-
- SQL 注入导致数据库泄露
|
|
17
|
-
- 硬编码凭证
|
|
18
|
-
|
|
19
|
-
### High
|
|
20
|
-
|
|
21
|
-
可导致:
|
|
22
|
-
- 未授权的用户数据访问
|
|
23
|
-
- 权限提升
|
|
24
|
-
- 关键业务逻辑绕过
|
|
25
|
-
|
|
26
|
-
示例:
|
|
27
|
-
- IDOR 导致其他用户数据泄露
|
|
28
|
-
- 垂直越权获取管理员功能
|
|
29
|
-
- 敏感 API 密钥泄露
|
|
30
|
-
|
|
31
|
-
### Medium
|
|
32
|
-
|
|
33
|
-
可导致:
|
|
34
|
-
- 有限的用户数据影响
|
|
35
|
-
- 信息泄露
|
|
36
|
-
- 安全控制降低
|
|
37
|
-
|
|
38
|
-
示例:
|
|
39
|
-
- 敏感信息在错误消息中暴露
|
|
40
|
-
- 账户枚举
|
|
41
|
-
- 暴力攻击防护缺失
|
|
42
|
-
|
|
43
|
-
### Low
|
|
44
|
-
|
|
45
|
-
影响有限:
|
|
46
|
-
- 信息披露
|
|
47
|
-
- 次要配置问题
|
|
48
|
-
- 低风险误报
|
|
49
|
-
|
|
50
|
-
示例:
|
|
51
|
-
- 调试头暴露
|
|
52
|
-
- OPTIONS 方法可用
|
|
53
|
-
- 详细版本信息泄露
|
|
54
|
-
|
|
55
|
-
### Informational
|
|
56
|
-
|
|
57
|
-
非安全问题:
|
|
58
|
-
- 最佳实践建议
|
|
59
|
-
- 文档改进建议
|
|
60
|
-
|
|
61
|
-
## Confidence Levels
|
|
62
|
-
|
|
63
|
-
| Level | 标准 | 要求证据 |
|
|
64
|
-
|-------|------|----------|
|
|
65
|
-
| Confirmed | 完全验证,有 PoC | 完整请求/响应 |
|
|
66
|
-
| High | 强指标 | 请求+响应+影响分析 |
|
|
67
|
-
| Medium | 中等指标 | 观察到的行为 |
|
|
68
|
-
| Low | 弱指标 | 单一响应 |
|
|
69
|
-
| Hypothesis | 理论推断 | 需要进一步调查 |
|
|
70
|
-
|
|
71
|
-
## 校准原则
|
|
72
|
-
|
|
73
|
-
1. **保守校准**: 证据不确定时,倾向较低严重性
|
|
74
|
-
2. **基于影响**: 考虑真实世界影响
|
|
75
|
-
3. **可利用性**: 考虑利用难度和前提条件
|
|
76
|
-
4. **业务上下文**: 考虑受影响资产的价值
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
# Test Matrix
|
|
2
|
-
|
|
3
|
-
构建优先化的安全测试矩阵。
|
|
4
|
-
|
|
5
|
-
## 维度
|
|
6
|
-
|
|
7
|
-
### 1. 认证 (Authentication)
|
|
8
|
-
|
|
9
|
-
| 测试项 | 说明 | 优先级 |
|
|
10
|
-
|--------|------|--------|
|
|
11
|
-
| 弱密码策略 | 密码强度要求是否合理 | high |
|
|
12
|
-
| 暴力攻击防护 | 登录是否有速率限制 | critical |
|
|
13
|
-
| 认证绕过 | 是否能绕过认证获取访问 | critical |
|
|
14
|
-
| Token 强度 | JWT/会话 token 是否安全生成 | high |
|
|
15
|
-
| 密码重置 | 密码重置流程是否安全 | high |
|
|
16
|
-
|
|
17
|
-
### 2. 授权 (Authorization)
|
|
18
|
-
|
|
19
|
-
| 测试项 | 说明 | 优先级 |
|
|
20
|
-
|--------|------|--------|
|
|
21
|
-
| IDOR | 对象引用是否可预测 | critical |
|
|
22
|
-
| 水平越权 | 能否访问其他用户数据 | critical |
|
|
23
|
-
| 垂直越权 | 能否获取更高权限 | critical |
|
|
24
|
-
| 功能级访问 | 是否有功能级权限检查 | high |
|
|
25
|
-
| 隐式授权 | trust boundary 是否正确 | high |
|
|
26
|
-
|
|
27
|
-
### 3. 输入处理
|
|
28
|
-
|
|
29
|
-
| 测试项 | 说明 | 优先级 |
|
|
30
|
-
|--------|------|--------|
|
|
31
|
-
| SQL 注入 | 参数化查询是否正确使用 | critical |
|
|
32
|
-
| XSS | 输出是否正确转义 | high |
|
|
33
|
-
| 命令注入 | 系统命令是否可注入 | critical |
|
|
34
|
-
| 路径遍历 | 文件路径是否可操控 | high |
|
|
35
|
-
| 参数污染 | 请求参数是否可污染 | medium |
|
|
36
|
-
|
|
37
|
-
### 4. 敏感数据
|
|
38
|
-
|
|
39
|
-
| 测试项 | 说明 | 优先级 |
|
|
40
|
-
|--------|------|--------|
|
|
41
|
-
| 敏感数据暴露 | API 是否暴露敏感信息 | high |
|
|
42
|
-
| 过度数据返回 | 是否返回过多数据 | medium |
|
|
43
|
-
| 存储敏感数据 | 日志/缓存是否记录敏感数据 | medium |
|
|
44
|
-
| 加密 | 敏感数据是否加密传输/存储 | high |
|
|
45
|
-
|
|
46
|
-
### 5. 业务逻辑
|
|
47
|
-
|
|
48
|
-
| 测试项 | 说明 | 优先级 |
|
|
49
|
-
|--------|------|--------|
|
|
50
|
-
| 流程绕过 | 能否跳过关键步骤 | high |
|
|
51
|
-
| 条件竞争 | 并发请求是否安全 | medium |
|
|
52
|
-
| 批量操作 | 批量请求是否有合理限制 | medium |
|
|
53
|
-
| 逆向推理 | 能否从响应推断未授权数据 | medium |
|
|
54
|
-
|
|
55
|
-
### 6. 速率和配额
|
|
56
|
-
|
|
57
|
-
| 测试项 | 说明 | 优先级 |
|
|
58
|
-
|--------|------|--------|
|
|
59
|
-
| 速率限制 | 是否有合理的速率限制 | high |
|
|
60
|
-
| 配额管理 | 资源配额是否正确实施 | medium |
|
|
61
|
-
| 服务降级 | DoS 场景下行为是否合理 | low |
|
|
62
|
-
|
|
63
|
-
### 7. 文档和配置
|
|
64
|
-
|
|
65
|
-
| 测试项 | 说明 | 优先级 |
|
|
66
|
-
|--------|------|--------|
|
|
67
|
-
| OpenAPI 暴露 | 是否意外暴露 OpenAPI 文档 | medium |
|
|
68
|
-
| 调试端点 | 调试端点是否在生产环境暴露 | medium |
|
|
69
|
-
| CORS 配置 | CORS 配置是否安全 | medium |
|
|
70
|
-
| HTTP 方法 | 是否限制了不安全的 HTTP 方法 | low |
|
|
71
|
-
|
|
72
|
-
## 优先级规则
|
|
73
|
-
|
|
74
|
-
1. **Critical**: 直接导致未授权访问或数据泄露
|
|
75
|
-
2. **High**: 可能导致安全控制失效
|
|
76
|
-
3. **Medium**: 降低安全边界
|
|
77
|
-
4. **Low**: 信息泄露或次要问题
|
|
78
|
-
|
|
79
|
-
## 测试方法
|
|
80
|
-
|
|
81
|
-
### 对于每个发现
|
|
82
|
-
|
|
83
|
-
1. **验证**: 确认问题存在
|
|
84
|
-
2. **影响评估**: 确定现实影响
|
|
85
|
-
3. **置信度**: 基于证据的置信级别
|
|
86
|
-
4. **修复建议**: 具体可操作的修复方案
|