opencode-api-security-testing 3.0.9 → 3.0.10

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 (78) hide show
  1. package/agents/api-cyber-supervisor.md +22 -19
  2. package/agents/api-probing-miner.md +34 -10
  3. package/agents/api-resource-specialist.md +49 -20
  4. package/agents/api-vuln-verifier.md +69 -18
  5. package/package.json +1 -1
  6. package/postinstall.mjs +1 -0
  7. package/preuninstall.mjs +43 -32
  8. package/src/index.ts +6 -3
  9. package/README.md +0 -74
  10. package/SKILL.md +0 -1797
  11. package/core/advanced_recon.py +0 -788
  12. package/core/agentic_analyzer.py +0 -445
  13. package/core/analyzers/api_parser.py +0 -210
  14. package/core/analyzers/response_analyzer.py +0 -212
  15. package/core/analyzers/sensitive_finder.py +0 -184
  16. package/core/api_fuzzer.py +0 -422
  17. package/core/api_interceptor.py +0 -525
  18. package/core/api_parser.py +0 -955
  19. package/core/browser_tester.py +0 -479
  20. package/core/cloud_storage_tester.py +0 -1330
  21. package/core/collectors/__init__.py +0 -23
  22. package/core/collectors/api_path_finder.py +0 -300
  23. package/core/collectors/browser_collect.py +0 -645
  24. package/core/collectors/browser_collector.py +0 -411
  25. package/core/collectors/http_client.py +0 -111
  26. package/core/collectors/js_collector.py +0 -490
  27. package/core/collectors/js_parser.py +0 -780
  28. package/core/collectors/url_collector.py +0 -319
  29. package/core/context_manager.py +0 -682
  30. package/core/deep_api_tester_v35.py +0 -844
  31. package/core/deep_api_tester_v55.py +0 -366
  32. package/core/dynamic_api_analyzer.py +0 -532
  33. package/core/http_client.py +0 -179
  34. package/core/models.py +0 -296
  35. package/core/orchestrator.py +0 -890
  36. package/core/prerequisite.py +0 -227
  37. package/core/reasoning_engine.py +0 -1042
  38. package/core/response_classifier.py +0 -606
  39. package/core/runner.py +0 -938
  40. package/core/scan_engine.py +0 -599
  41. package/core/skill_executor.py +0 -435
  42. package/core/skill_executor_v2.py +0 -670
  43. package/core/skill_executor_v3.py +0 -704
  44. package/core/smart_analyzer.py +0 -687
  45. package/core/strategy_pool.py +0 -707
  46. package/core/testers/auth_tester.py +0 -264
  47. package/core/testers/idor_tester.py +0 -200
  48. package/core/testers/sqli_tester.py +0 -211
  49. package/core/testing_loop.py +0 -655
  50. package/core/utils/base_path_dict.py +0 -255
  51. package/core/utils/payload_lib.py +0 -167
  52. package/core/utils/ssrf_detector.py +0 -220
  53. package/core/verifiers/vuln_verifier.py +0 -536
  54. package/references/README.md +0 -72
  55. package/references/asset-discovery.md +0 -119
  56. package/references/fuzzing-patterns.md +0 -129
  57. package/references/graphql-guidance.md +0 -108
  58. package/references/intake.md +0 -84
  59. package/references/pua-agent.md +0 -192
  60. package/references/report-template.md +0 -156
  61. package/references/rest-guidance.md +0 -76
  62. package/references/severity-model.md +0 -76
  63. package/references/test-matrix.md +0 -86
  64. package/references/validation.md +0 -78
  65. package/references/vulnerabilities/01-sqli-tests.md +0 -1128
  66. package/references/vulnerabilities/02-user-enum-tests.md +0 -423
  67. package/references/vulnerabilities/03-jwt-tests.md +0 -499
  68. package/references/vulnerabilities/04-idor-tests.md +0 -362
  69. package/references/vulnerabilities/05-sensitive-data-tests.md +0 -466
  70. package/references/vulnerabilities/06-biz-logic-tests.md +0 -501
  71. package/references/vulnerabilities/07-security-config-tests.md +0 -511
  72. package/references/vulnerabilities/08-brute-force-tests.md +0 -457
  73. package/references/vulnerabilities/09-vulnerability-chains.md +0 -465
  74. package/references/vulnerabilities/10-auth-tests.md +0 -537
  75. package/references/vulnerabilities/11-graphql-tests.md +0 -355
  76. package/references/vulnerabilities/12-ssrf-tests.md +0 -396
  77. package/references/vulnerabilities/README.md +0 -148
  78. package/references/workflows.md +0 -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. **修复建议**: 具体可操作的修复方案
@@ -1,78 +0,0 @@
1
- # Validation Guidance
2
-
3
- 验证和分类发现。
4
-
5
- ## 报告标准
6
-
7
- 仅报告有足够支持的问题:
8
-
9
- ### 必须包含
10
-
11
- - **受影响资产**: 具体的 API endpoint 或操作
12
- - **证据**: 请求/响应样本
13
- - **复现路径**: 清晰的步骤
14
- - **影响**: 现实世界的影响
15
- - **置信级别**: 确认/高/中/低/假设
16
-
17
- ### 证据不完整时
18
-
19
- - 标记为假设 (hypothesis)、弱信号 (weak signal) 或可能问题 (likely issue)
20
- - 明确解释确认所需内容
21
-
22
- ### 不要
23
-
24
- - 从模糊行为夸大严重性
25
- - 基于不完整的证据做强声明
26
- - 假设最坏情况
27
-
28
- ## 置信级别
29
-
30
- | 级别 | 标准 |
31
- |------|------|
32
- | **确认 (Confirmed)** | 完整的 PoC、明确的证据 |
33
- | **高 (High)** | 强指标、合理推断 |
34
- | **中 (Medium)** | 中等指标、需要更多验证 |
35
- | **低 (Low)** | 弱指标、可能是误报 |
36
- | **假设 (Hypothesis)** | 基于观察的推断、需要进一步调查 |
37
-
38
- ## 影响评估
39
-
40
- ### 考虑
41
-
42
- - 攻击复杂度
43
- - 用户交互需求
44
- - 数据敏感性
45
- - 受影响用户数量
46
- - 财务/合规影响
47
-
48
- ### 避免
49
-
50
- - 夸大威胁
51
- - 基于假设的影响
52
- - 不切实际的利用场景
53
-
54
- ## 验证技术
55
-
56
- ### 认证问题
57
-
58
- - 验证 token 伪造是否可能
59
- - 测试会话管理缺陷
60
- - 确认账户接管场景
61
-
62
- ### 授权问题
63
-
64
- - 测试 IDOR 是否可利用
65
- - 验证水平/垂直越权
66
- - 确认权限提升路径
67
-
68
- ### 输入处理
69
-
70
- - 使用安全 payload 验证
71
- - 确认漏洞触发条件
72
- - 评估利用难度
73
-
74
- ### 数据泄露
75
-
76
- - 确认敏感数据暴露
77
- - 评估信息价值
78
- - 检查数据聚合风险