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.
Files changed (28) hide show
  1. package/package.json +48 -48
  2. package/postinstall.mjs +40 -69
  3. package/references/references/README.md +0 -72
  4. package/references/references/asset-discovery.md +0 -119
  5. package/references/references/fuzzing-patterns.md +0 -129
  6. package/references/references/graphql-guidance.md +0 -108
  7. package/references/references/intake.md +0 -84
  8. package/references/references/pua-agent.md +0 -192
  9. package/references/references/report-template.md +0 -156
  10. package/references/references/rest-guidance.md +0 -76
  11. package/references/references/severity-model.md +0 -76
  12. package/references/references/test-matrix.md +0 -86
  13. package/references/references/validation.md +0 -78
  14. package/references/references/vulnerabilities/01-sqli-tests.md +0 -1128
  15. package/references/references/vulnerabilities/02-user-enum-tests.md +0 -423
  16. package/references/references/vulnerabilities/03-jwt-tests.md +0 -499
  17. package/references/references/vulnerabilities/04-idor-tests.md +0 -362
  18. package/references/references/vulnerabilities/05-sensitive-data-tests.md +0 -466
  19. package/references/references/vulnerabilities/06-biz-logic-tests.md +0 -501
  20. package/references/references/vulnerabilities/07-security-config-tests.md +0 -511
  21. package/references/references/vulnerabilities/08-brute-force-tests.md +0 -457
  22. package/references/references/vulnerabilities/09-vulnerability-chains.md +0 -465
  23. package/references/references/vulnerabilities/10-auth-tests.md +0 -537
  24. package/references/references/vulnerabilities/11-graphql-tests.md +0 -355
  25. package/references/references/vulnerabilities/12-ssrf-tests.md +0 -396
  26. package/references/references/vulnerabilities/README.md +0 -148
  27. package/references/references/workflows.md +0 -192
  28. 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. **修复建议**: 具体可操作的修复方案