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.
Files changed (61) hide show
  1. package/SKILL.md +1797 -0
  2. package/core/advanced_recon.py +788 -0
  3. package/core/agentic_analyzer.py +445 -0
  4. package/core/analyzers/api_parser.py +210 -0
  5. package/core/analyzers/response_analyzer.py +212 -0
  6. package/core/analyzers/sensitive_finder.py +184 -0
  7. package/core/api_fuzzer.py +422 -0
  8. package/core/api_interceptor.py +525 -0
  9. package/core/api_parser.py +955 -0
  10. package/core/browser_tester.py +479 -0
  11. package/core/cloud_storage_tester.py +1330 -0
  12. package/core/collectors/__init__.py +23 -0
  13. package/core/collectors/api_path_finder.py +300 -0
  14. package/core/collectors/browser_collect.py +645 -0
  15. package/core/collectors/browser_collector.py +411 -0
  16. package/core/collectors/http_client.py +111 -0
  17. package/core/collectors/js_collector.py +490 -0
  18. package/core/collectors/js_parser.py +780 -0
  19. package/core/collectors/url_collector.py +319 -0
  20. package/core/context_manager.py +682 -0
  21. package/core/deep_api_tester_v35.py +844 -0
  22. package/core/deep_api_tester_v55.py +366 -0
  23. package/core/dynamic_api_analyzer.py +532 -0
  24. package/core/http_client.py +179 -0
  25. package/core/models.py +296 -0
  26. package/core/orchestrator.py +890 -0
  27. package/core/prerequisite.py +227 -0
  28. package/core/reasoning_engine.py +1042 -0
  29. package/core/response_classifier.py +606 -0
  30. package/core/runner.py +938 -0
  31. package/core/scan_engine.py +599 -0
  32. package/core/skill_executor.py +435 -0
  33. package/core/skill_executor_v2.py +670 -0
  34. package/core/skill_executor_v3.py +704 -0
  35. package/core/smart_analyzer.py +687 -0
  36. package/core/strategy_pool.py +707 -0
  37. package/core/testers/auth_tester.py +264 -0
  38. package/core/testers/idor_tester.py +200 -0
  39. package/core/testers/sqli_tester.py +211 -0
  40. package/core/testing_loop.py +655 -0
  41. package/core/utils/base_path_dict.py +255 -0
  42. package/core/utils/payload_lib.py +167 -0
  43. package/core/utils/ssrf_detector.py +220 -0
  44. package/core/verifiers/vuln_verifier.py +536 -0
  45. package/package.json +17 -13
  46. package/references/asset-discovery.md +119 -612
  47. package/references/graphql-guidance.md +65 -641
  48. package/references/intake.md +84 -0
  49. package/references/report-template.md +131 -38
  50. package/references/rest-guidance.md +55 -526
  51. package/references/severity-model.md +52 -264
  52. package/references/test-matrix.md +65 -263
  53. package/references/validation.md +53 -400
  54. package/scripts/postinstall.js +46 -0
  55. package/agents/cyber-supervisor.md +0 -55
  56. package/agents/probing-miner.md +0 -42
  57. package/agents/resource-specialist.md +0 -31
  58. package/commands/api-security-testing-scan.md +0 -59
  59. package/commands/api-security-testing-test.md +0 -49
  60. package/commands/api-security-testing.md +0 -72
  61. 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
- - **测试目标**: [URL]
6
- - **测试时间**: [日期时间]
7
- - **测试工具**: Deep API Tester
5
+ ---
8
6
 
9
- ## 发现统计
7
+ ## Scope
10
8
 
11
- | 类型 | 数量 |
12
- |------|------|
13
- | JS文件 | [N] |
14
- | API端点 | [N] |
15
- | 漏洞数量 | [N] |
9
+ - **Target**: [目标 URL 或 base URL]
10
+ - **Assessment Mode**: [文档驱动/被动/主动]
11
+ - **Timeframe**: [评估日期范围]
12
+ - **Authorization**: [授权范围说明]
16
13
 
17
- ## API端点清单
14
+ ---
15
+
16
+ ## Authorization Assumptions
17
+
18
+ - [假设已明确授权测试的目标]
19
+ - [假设测试环境的限制]
20
+ - [其他假设条件]
21
+
22
+ ---
23
+
24
+ ## Asset Summary
25
+
26
+ ### Base URLs
18
27
 
19
28
  ```
20
- [按类型分类列出所有发现的API端点]
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
- - **严重程度**: [HIGH/MEDIUM/LOW]
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
- 目标信息完整(URL、技术栈、API地址、认证方式)
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
+ - [参考链接]