opencode-api-security-testing 2.1.0 → 2.1.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/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
|
@@ -0,0 +1,84 @@
|
|
|
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,63 +1,156 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Report Template
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
标准化 API 安全报告模板。
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
- **测试时间**: [日期时间]
|
|
7
|
-
- **测试工具**: Deep API Tester
|
|
5
|
+
---
|
|
8
6
|
|
|
9
|
-
##
|
|
7
|
+
## Scope
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
| 漏洞数量 | [N] |
|
|
9
|
+
- **Target**: [目标 URL 或 base URL]
|
|
10
|
+
- **Assessment Mode**: [文档驱动/被动/主动]
|
|
11
|
+
- **Timeframe**: [评估日期范围]
|
|
12
|
+
- **Authorization**: [授权范围说明]
|
|
16
13
|
|
|
17
|
-
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Authorization Assumptions
|
|
17
|
+
|
|
18
|
+
- [假设已明确授权测试的目标]
|
|
19
|
+
- [假设测试环境的限制]
|
|
20
|
+
- [其他假设条件]
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Asset Summary
|
|
25
|
+
|
|
26
|
+
### Base URLs
|
|
18
27
|
|
|
19
28
|
```
|
|
20
|
-
[
|
|
29
|
+
- [URL 1]
|
|
30
|
+
- [URL 2]
|
|
21
31
|
```
|
|
22
32
|
|
|
23
|
-
|
|
33
|
+
### API Type
|
|
24
34
|
|
|
25
|
-
|
|
35
|
+
```
|
|
36
|
+
[REST / GraphQL / 混合]
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Auth Schemes
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
[认证方式:Bearer Token / JWT / Session / API Key / OAuth]
|
|
43
|
+
```
|
|
26
44
|
|
|
27
|
-
|
|
28
|
-
- **端点**: [URL]
|
|
29
|
-
- **验证过程**: [描述如何发现和验证漏洞]
|
|
30
|
-
- **响应证据**: [关键响应内容]
|
|
31
|
-
- **影响分析**: [漏洞影响]
|
|
32
|
-
- **修复建议**: [具体修复方案]
|
|
45
|
+
### Discovered Endpoints
|
|
33
46
|
|
|
34
|
-
|
|
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
|
|
35
53
|
|
|
36
54
|
```
|
|
37
|
-
[
|
|
55
|
+
- [敏感对象列表]
|
|
38
56
|
```
|
|
39
57
|
|
|
40
|
-
|
|
58
|
+
### Trust Boundaries
|
|
41
59
|
|
|
42
60
|
```
|
|
43
|
-
[
|
|
61
|
+
- [信任边界描述]
|
|
44
62
|
```
|
|
45
63
|
|
|
46
|
-
|
|
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
|
|
47
78
|
|
|
48
|
-
|
|
49
|
-
|--------|------|----------|
|
|
50
|
-
| 高 | [漏洞名] | [方案] |
|
|
51
|
-
| 中 | [漏洞名] | [方案] |
|
|
52
|
-
| 低 | [漏洞名] | [方案] |
|
|
79
|
+
### Finding 1: [标题]
|
|
53
80
|
|
|
54
|
-
|
|
81
|
+
**Severity**: [Critical / High / Medium / Low / Informational]
|
|
55
82
|
|
|
83
|
+
**Confidence**: [Confirmed / High / Medium / Low / Hypothesis]
|
|
84
|
+
|
|
85
|
+
**Affected Asset**:
|
|
56
86
|
```
|
|
57
|
-
|
|
58
|
-
□ API端点清单齐全(按类型分类)
|
|
59
|
-
□ 漏洞详情完整(验证过程、响应、影响、修复建议)
|
|
60
|
-
□ 利用链分析(多漏洞关联)
|
|
61
|
-
□ 安全优点总结
|
|
62
|
-
□ 修复建议按优先级排序
|
|
87
|
+
[具体 endpoint 或操作]
|
|
63
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
|
+
- [参考链接]
|