@namch/agent-assistant 1.0.0 → 1.0.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 (168) hide show
  1. package/README.md +114 -522
  2. package/agents/backend-engineer.md +0 -8
  3. package/agents/brainstormer.md +0 -6
  4. package/agents/business-analyst.md +0 -5
  5. package/agents/database-architect.md +0 -6
  6. package/agents/debugger.md +0 -6
  7. package/agents/designer.md +0 -5
  8. package/agents/devops-engineer.md +0 -7
  9. package/agents/docs-manager.md +0 -6
  10. package/agents/frontend-engineer.md +0 -7
  11. package/agents/game-engineer.md +0 -7
  12. package/agents/mobile-engineer.md +0 -7
  13. package/agents/performance-engineer.md +0 -7
  14. package/agents/planner.md +0 -6
  15. package/agents/project-manager.md +0 -6
  16. package/agents/researcher.md +0 -5
  17. package/agents/reviewer.md +0 -6
  18. package/agents/scouter.md +0 -6
  19. package/agents/security-engineer.md +0 -7
  20. package/agents/tech-lead.md +0 -7
  21. package/agents/tester.md +0 -5
  22. package/cli/README.md +19 -10
  23. package/documents/business/business-features.md +1 -1
  24. package/documents/business/business-prd.md +4 -4
  25. package/documents/knowledge-architecture.md +1 -1
  26. package/documents/knowledge-domain.md +1 -1
  27. package/documents/knowledge-overview.md +14 -29
  28. package/documents/knowledge-source-base.md +14 -14
  29. package/package.json +1 -1
  30. package/rules/QUICK-REFERENCE.md +4 -1
  31. package/rules/SKILL-DISCOVERY.md +37 -14
  32. package/skills/active-directory-attacks/SKILL.md +383 -0
  33. package/skills/active-directory-attacks/references/advanced-attacks.md +382 -0
  34. package/skills/agent-evaluation/SKILL.md +64 -0
  35. package/skills/agent-memory-mcp/SKILL.md +82 -0
  36. package/skills/agent-memory-systems/SKILL.md +67 -0
  37. package/skills/agent-tool-builder/SKILL.md +53 -0
  38. package/skills/ai-agents-architect/SKILL.md +90 -0
  39. package/skills/ai-product/SKILL.md +54 -0
  40. package/skills/ai-wrapper-product/SKILL.md +273 -0
  41. package/skills/api-documentation-generator/SKILL.md +484 -0
  42. package/skills/api-fuzzing-bug-bounty/SKILL.md +433 -0
  43. package/skills/api-security-best-practices/SKILL.md +907 -0
  44. package/skills/autonomous-agent-patterns/SKILL.md +761 -0
  45. package/skills/autonomous-agents/SKILL.md +68 -0
  46. package/skills/aws-penetration-testing/SKILL.md +405 -0
  47. package/skills/aws-penetration-testing/references/advanced-aws-pentesting.md +469 -0
  48. package/skills/azure-functions/SKILL.md +42 -0
  49. package/skills/backend-dev-guidelines/SKILL.md +342 -0
  50. package/skills/backend-dev-guidelines/resources/architecture-overview.md +451 -0
  51. package/skills/backend-dev-guidelines/resources/async-and-errors.md +307 -0
  52. package/skills/backend-dev-guidelines/resources/complete-examples.md +638 -0
  53. package/skills/backend-dev-guidelines/resources/configuration.md +275 -0
  54. package/skills/backend-dev-guidelines/resources/database-patterns.md +224 -0
  55. package/skills/backend-dev-guidelines/resources/middleware-guide.md +213 -0
  56. package/skills/backend-dev-guidelines/resources/routing-and-controllers.md +756 -0
  57. package/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +336 -0
  58. package/skills/backend-dev-guidelines/resources/services-and-repositories.md +789 -0
  59. package/skills/backend-dev-guidelines/resources/testing-guide.md +235 -0
  60. package/skills/backend-dev-guidelines/resources/validation-patterns.md +754 -0
  61. package/skills/broken-authentication/SKILL.md +476 -0
  62. package/skills/bullmq-specialist/SKILL.md +57 -0
  63. package/skills/bun-development/SKILL.md +691 -0
  64. package/skills/burp-suite-testing/SKILL.md +380 -0
  65. package/skills/cloud-penetration-testing/SKILL.md +501 -0
  66. package/skills/cloud-penetration-testing/references/advanced-cloud-scripts.md +318 -0
  67. package/skills/computer-use-agents/SKILL.md +315 -0
  68. package/skills/content-creator/SKILL.md +248 -0
  69. package/skills/content-creator/assets/content_calendar_template.md +99 -0
  70. package/skills/content-creator/references/brand_guidelines.md +199 -0
  71. package/skills/content-creator/references/content_frameworks.md +534 -0
  72. package/skills/content-creator/references/social_media_optimization.md +317 -0
  73. package/skills/content-creator/scripts/brand_voice_analyzer.py +185 -0
  74. package/skills/content-creator/scripts/seo_optimizer.py +419 -0
  75. package/skills/context-window-management/SKILL.md +53 -0
  76. package/skills/conversation-memory/SKILL.md +61 -0
  77. package/skills/copy-editing/SKILL.md +439 -0
  78. package/skills/copywriting/SKILL.md +225 -0
  79. package/skills/crewai/SKILL.md +243 -0
  80. package/skills/discord-bot-architect/SKILL.md +277 -0
  81. package/skills/dispatching-parallel-agents/SKILL.md +180 -0
  82. package/skills/email-sequence/SKILL.md +925 -0
  83. package/skills/email-systems/SKILL.md +54 -0
  84. package/skills/ethical-hacking-methodology/SKILL.md +466 -0
  85. package/skills/executing-plans/SKILL.md +76 -0
  86. package/skills/file-path-traversal/SKILL.md +486 -0
  87. package/skills/finishing-a-development-branch/SKILL.md +200 -0
  88. package/skills/frontend-dev-guidelines/SKILL.md +359 -0
  89. package/skills/frontend-dev-guidelines/resources/common-patterns.md +331 -0
  90. package/skills/frontend-dev-guidelines/resources/complete-examples.md +872 -0
  91. package/skills/frontend-dev-guidelines/resources/component-patterns.md +502 -0
  92. package/skills/frontend-dev-guidelines/resources/data-fetching.md +767 -0
  93. package/skills/frontend-dev-guidelines/resources/file-organization.md +502 -0
  94. package/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +501 -0
  95. package/skills/frontend-dev-guidelines/resources/performance.md +406 -0
  96. package/skills/frontend-dev-guidelines/resources/routing-guide.md +364 -0
  97. package/skills/frontend-dev-guidelines/resources/styling-guide.md +428 -0
  98. package/skills/frontend-dev-guidelines/resources/typescript-standards.md +418 -0
  99. package/skills/gcp-cloud-run/SKILL.md +288 -0
  100. package/skills/git-pushing/SKILL.md +33 -0
  101. package/skills/git-pushing/scripts/smart_commit.sh +19 -0
  102. package/skills/github-workflow-automation/SKILL.md +846 -0
  103. package/skills/html-injection-testing/SKILL.md +498 -0
  104. package/skills/idor-testing/SKILL.md +442 -0
  105. package/skills/inngest/SKILL.md +55 -0
  106. package/skills/javascript-mastery/SKILL.md +645 -0
  107. package/skills/kaizen/SKILL.md +730 -0
  108. package/skills/langfuse/SKILL.md +238 -0
  109. package/skills/langgraph/SKILL.md +287 -0
  110. package/skills/linux-privilege-escalation/SKILL.md +504 -0
  111. package/skills/llm-app-patterns/SKILL.md +760 -0
  112. package/skills/metasploit-framework/SKILL.md +478 -0
  113. package/skills/multi-agent-brainstorming/SKILL.md +256 -0
  114. package/skills/neon-postgres/SKILL.md +56 -0
  115. package/skills/nextjs-supabase-auth/SKILL.md +56 -0
  116. package/skills/nosql-expert/SKILL.md +111 -0
  117. package/skills/pentest-checklist/SKILL.md +334 -0
  118. package/skills/pentest-commands/SKILL.md +438 -0
  119. package/skills/plaid-fintech/SKILL.md +50 -0
  120. package/skills/planning-with-files/SKILL.md +211 -0
  121. package/skills/planning-with-files/examples.md +202 -0
  122. package/skills/planning-with-files/reference.md +218 -0
  123. package/skills/planning-with-files/scripts/check-complete.sh +44 -0
  124. package/skills/planning-with-files/scripts/init-session.sh +120 -0
  125. package/skills/planning-with-files/templates/findings.md +95 -0
  126. package/skills/planning-with-files/templates/progress.md +114 -0
  127. package/skills/planning-with-files/templates/task_plan.md +132 -0
  128. package/skills/privilege-escalation-methods/SKILL.md +333 -0
  129. package/skills/production-code-audit/SKILL.md +540 -0
  130. package/skills/prompt-caching/SKILL.md +61 -0
  131. package/skills/prompt-engineering/SKILL.md +171 -0
  132. package/skills/prompt-library/SKILL.md +322 -0
  133. package/skills/rag-engineer/SKILL.md +90 -0
  134. package/skills/rag-implementation/SKILL.md +63 -0
  135. package/skills/react-ui-patterns/SKILL.md +289 -0
  136. package/skills/red-team-tools/SKILL.md +310 -0
  137. package/skills/scanning-tools/SKILL.md +589 -0
  138. package/skills/shodan-reconnaissance/SKILL.md +503 -0
  139. package/skills/slack-bot-builder/SKILL.md +264 -0
  140. package/skills/smtp-penetration-testing/SKILL.md +500 -0
  141. package/skills/social-content/SKILL.md +807 -0
  142. package/skills/software-architecture/SKILL.md +75 -0
  143. package/skills/sql-injection-testing/SKILL.md +448 -0
  144. package/skills/sqlmap-database-pentesting/SKILL.md +400 -0
  145. package/skills/ssh-penetration-testing/SKILL.md +488 -0
  146. package/skills/stripe-integration/SKILL.md +69 -0
  147. package/skills/subagent-driven-development/SKILL.md +240 -0
  148. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +20 -0
  149. package/skills/subagent-driven-development/implementer-prompt.md +78 -0
  150. package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  151. package/skills/tavily-web/SKILL.md +36 -0
  152. package/skills/telegram-bot-builder/SKILL.md +254 -0
  153. package/skills/test-driven-development/SKILL.md +371 -0
  154. package/skills/test-driven-development/testing-anti-patterns.md +299 -0
  155. package/skills/test-fixing/SKILL.md +119 -0
  156. package/skills/top-web-vulnerabilities/SKILL.md +543 -0
  157. package/skills/trigger-dev/SKILL.md +67 -0
  158. package/skills/twilio-communications/SKILL.md +295 -0
  159. package/skills/upstash-qstash/SKILL.md +68 -0
  160. package/skills/verification-before-completion/SKILL.md +139 -0
  161. package/skills/voice-agents/SKILL.md +68 -0
  162. package/skills/voice-ai-development/SKILL.md +302 -0
  163. package/skills/windows-privilege-escalation/SKILL.md +496 -0
  164. package/skills/wireshark-analysis/SKILL.md +497 -0
  165. package/skills/wordpress-penetration-testing/SKILL.md +485 -0
  166. package/skills/workflow-automation/SKILL.md +68 -0
  167. package/skills/xss-html-injection/SKILL.md +499 -0
  168. package/skills/zapier-make-patterns/SKILL.md +67 -0
@@ -0,0 +1,442 @@
1
+ ---
2
+ name: IDOR Vulnerability Testing
3
+ description: This skill should be used when the user asks to "test for insecure direct object references," "find IDOR vulnerabilities," "exploit broken access control," "enumerate user IDs or object references," or "bypass authorization to access other users' data." It provides comprehensive guidance for detecting, exploiting, and remediating IDOR vulnerabilities in web applications.
4
+ metadata:
5
+ author: zebbern
6
+ version: "1.1"
7
+ ---
8
+
9
+ # IDOR Vulnerability Testing
10
+
11
+ ## Purpose
12
+
13
+ Provide systematic methodologies for identifying and exploiting Insecure Direct Object Reference (IDOR) vulnerabilities in web applications. This skill covers both database object references and static file references, detection techniques using parameter manipulation and enumeration, exploitation via Burp Suite, and remediation strategies for securing applications against unauthorized access.
14
+
15
+ ## Inputs / Prerequisites
16
+
17
+ - **Target Web Application**: URL of application with user-specific resources
18
+ - **Multiple User Accounts**: At least two test accounts to verify cross-user access
19
+ - **Burp Suite or Proxy Tool**: Intercepting proxy for request manipulation
20
+ - **Authorization**: Written permission for security testing
21
+ - **Understanding of Application Flow**: Knowledge of how objects are referenced (IDs, filenames)
22
+
23
+ ## Outputs / Deliverables
24
+
25
+ - **IDOR Vulnerability Report**: Documentation of discovered access control bypasses
26
+ - **Proof of Concept**: Evidence of unauthorized data access across user contexts
27
+ - **Affected Endpoints**: List of vulnerable API endpoints and parameters
28
+ - **Impact Assessment**: Classification of data exposure severity
29
+ - **Remediation Recommendations**: Specific fixes for identified vulnerabilities
30
+
31
+ ## Core Workflow
32
+
33
+ ### 1. Understand IDOR Vulnerability Types
34
+
35
+ #### Direct Reference to Database Objects
36
+ Occurs when applications reference database records via user-controllable parameters:
37
+ ```
38
+ # Original URL (authenticated as User A)
39
+ example.com/user/profile?id=2023
40
+
41
+ # Manipulation attempt (accessing User B's data)
42
+ example.com/user/profile?id=2022
43
+ ```
44
+
45
+ #### Direct Reference to Static Files
46
+ Occurs when applications expose file paths or names that can be enumerated:
47
+ ```
48
+ # Original URL (User A's receipt)
49
+ example.com/static/receipt/205.pdf
50
+
51
+ # Manipulation attempt (User B's receipt)
52
+ example.com/static/receipt/200.pdf
53
+ ```
54
+
55
+ ### 2. Reconnaissance and Setup
56
+
57
+ #### Create Multiple Test Accounts
58
+ ```
59
+ Account 1: "attacker" - Primary testing account
60
+ Account 2: "victim" - Account whose data we attempt to access
61
+ ```
62
+
63
+ #### Identify Object References
64
+ Capture and analyze requests containing:
65
+ - Numeric IDs in URLs: `/api/user/123`
66
+ - Numeric IDs in parameters: `?id=123&action=view`
67
+ - Numeric IDs in request body: `{"userId": 123}`
68
+ - File paths: `/download/receipt_123.pdf`
69
+ - GUIDs/UUIDs: `/profile/a1b2c3d4-e5f6-...`
70
+
71
+ #### Map User IDs
72
+ ```
73
+ # Access user ID endpoint (if available)
74
+ GET /api/user-id/
75
+
76
+ # Note ID patterns:
77
+ # - Sequential integers (1, 2, 3...)
78
+ # - Auto-incremented values
79
+ # - Predictable patterns
80
+ ```
81
+
82
+ ### 3. Detection Techniques
83
+
84
+ #### URL Parameter Manipulation
85
+ ```
86
+ # Step 1: Capture original authenticated request
87
+ GET /api/user/profile?id=1001 HTTP/1.1
88
+ Cookie: session=attacker_session
89
+
90
+ # Step 2: Modify ID to target another user
91
+ GET /api/user/profile?id=1000 HTTP/1.1
92
+ Cookie: session=attacker_session
93
+
94
+ # Vulnerable if: Returns victim's data with attacker's session
95
+ ```
96
+
97
+ #### Request Body Manipulation
98
+ ```
99
+ # Original POST request
100
+ POST /api/address/update HTTP/1.1
101
+ Content-Type: application/json
102
+ Cookie: session=attacker_session
103
+
104
+ {"id": 5, "userId": 1001, "address": "123 Attacker St"}
105
+
106
+ # Modified request targeting victim
107
+ {"id": 5, "userId": 1000, "address": "123 Attacker St"}
108
+ ```
109
+
110
+ #### HTTP Method Switching
111
+ ```
112
+ # Original GET request may be protected
113
+ GET /api/admin/users/1000 → 403 Forbidden
114
+
115
+ # Try alternative methods
116
+ POST /api/admin/users/1000 → 200 OK (Vulnerable!)
117
+ PUT /api/admin/users/1000 → 200 OK (Vulnerable!)
118
+ ```
119
+
120
+ ### 4. Exploitation with Burp Suite
121
+
122
+ #### Manual Exploitation
123
+ ```
124
+ 1. Configure browser proxy through Burp Suite
125
+ 2. Login as "attacker" user
126
+ 3. Navigate to profile/data page
127
+ 4. Enable Intercept in Proxy tab
128
+ 5. Capture request with user ID
129
+ 6. Modify ID to victim's ID
130
+ 7. Forward request
131
+ 8. Observe response for victim's data
132
+ ```
133
+
134
+ #### Automated Enumeration with Intruder
135
+ ```
136
+ 1. Send request to Intruder (Ctrl+I)
137
+ 2. Clear all payload positions
138
+ 3. Select ID parameter as payload position
139
+ 4. Configure attack type: Sniper
140
+ 5. Payload settings:
141
+ - Type: Numbers
142
+ - Range: 1 to 10000
143
+ - Step: 1
144
+ 6. Start attack
145
+ 7. Analyze responses for 200 status codes
146
+ ```
147
+
148
+ #### Battering Ram Attack for Multiple Positions
149
+ ```
150
+ # When same ID appears in multiple locations
151
+ PUT /api/addresses/§5§/update HTTP/1.1
152
+
153
+ {"id": §5§, "userId": 3}
154
+
155
+ Attack Type: Battering Ram
156
+ Payload: Numbers 1-1000
157
+ ```
158
+
159
+ ### 5. Common IDOR Locations
160
+
161
+ #### API Endpoints
162
+ ```
163
+ /api/user/{id}
164
+ /api/profile/{id}
165
+ /api/order/{id}
166
+ /api/invoice/{id}
167
+ /api/document/{id}
168
+ /api/message/{id}
169
+ /api/address/{id}/update
170
+ /api/address/{id}/delete
171
+ ```
172
+
173
+ #### File Downloads
174
+ ```
175
+ /download/invoice_{id}.pdf
176
+ /static/receipts/{id}.pdf
177
+ /uploads/documents/{filename}
178
+ /files/reports/report_{date}_{id}.xlsx
179
+ ```
180
+
181
+ #### Query Parameters
182
+ ```
183
+ ?userId=123
184
+ ?orderId=456
185
+ ?documentId=789
186
+ ?file=report_123.pdf
187
+ ?account=user@email.com
188
+ ```
189
+
190
+ ## Quick Reference
191
+
192
+ ### IDOR Testing Checklist
193
+
194
+ | Test | Method | Indicator of Vulnerability |
195
+ |------|--------|---------------------------|
196
+ | Increment/Decrement ID | Change `id=5` to `id=4` | Returns different user's data |
197
+ | Use Victim's ID | Replace with known victim ID | Access granted to victim's resources |
198
+ | Enumerate Range | Test IDs 1-1000 | Find valid records of other users |
199
+ | Negative Values | Test `id=-1` or `id=0` | Unexpected data or errors |
200
+ | Large Values | Test `id=99999999` | System information disclosure |
201
+ | String IDs | Change format `id=user_123` | Logic bypass |
202
+ | GUID Manipulation | Modify UUID portions | Predictable UUID patterns |
203
+
204
+ ### Response Analysis
205
+
206
+ | Status Code | Interpretation |
207
+ |-------------|----------------|
208
+ | 200 OK | Potential IDOR - verify data ownership |
209
+ | 403 Forbidden | Access control working |
210
+ | 404 Not Found | Resource doesn't exist |
211
+ | 401 Unauthorized | Authentication required |
212
+ | 500 Error | Potential input validation issue |
213
+
214
+ ### Common Vulnerable Parameters
215
+
216
+ | Parameter Type | Examples |
217
+ |----------------|----------|
218
+ | User identifiers | `userId`, `uid`, `user_id`, `account` |
219
+ | Resource identifiers | `id`, `pid`, `docId`, `fileId` |
220
+ | Order/Transaction | `orderId`, `transactionId`, `invoiceId` |
221
+ | Message/Communication | `messageId`, `threadId`, `chatId` |
222
+ | File references | `filename`, `file`, `document`, `path` |
223
+
224
+ ## Constraints and Limitations
225
+
226
+ ### Operational Boundaries
227
+ - Requires at least two valid user accounts for verification
228
+ - Some applications use session-bound tokens instead of IDs
229
+ - GUID/UUID references harder to enumerate but not impossible
230
+ - Rate limiting may restrict enumeration attempts
231
+ - Some IDOR requires chained vulnerabilities to exploit
232
+
233
+ ### Detection Challenges
234
+ - Horizontal privilege escalation (user-to-user) vs vertical (user-to-admin)
235
+ - Blind IDOR where response doesn't confirm access
236
+ - Time-based IDOR in asynchronous operations
237
+ - IDOR in websocket communications
238
+
239
+ ### Legal Requirements
240
+ - Only test applications with explicit authorization
241
+ - Document all testing activities and findings
242
+ - Do not access, modify, or exfiltrate real user data
243
+ - Report findings through proper disclosure channels
244
+
245
+ ## Examples
246
+
247
+ ### Example 1: Basic ID Parameter IDOR
248
+ ```
249
+ # Login as attacker (userId=1001)
250
+ # Navigate to profile page
251
+
252
+ # Original request
253
+ GET /api/profile?id=1001 HTTP/1.1
254
+ Cookie: session=abc123
255
+
256
+ # Response: Attacker's profile data
257
+
258
+ # Modified request (targeting victim userId=1000)
259
+ GET /api/profile?id=1000 HTTP/1.1
260
+ Cookie: session=abc123
261
+
262
+ # Vulnerable Response: Victim's profile data returned!
263
+ ```
264
+
265
+ ### Example 2: IDOR in Address Update Endpoint
266
+ ```
267
+ # Intercept address update request
268
+ PUT /api/addresses/5/update HTTP/1.1
269
+ Content-Type: application/json
270
+ Cookie: session=attacker_session
271
+
272
+ {
273
+ "id": 5,
274
+ "userId": 1001,
275
+ "street": "123 Main St",
276
+ "city": "Test City"
277
+ }
278
+
279
+ # Modify userId to victim's ID
280
+ {
281
+ "id": 5,
282
+ "userId": 1000, # Changed from 1001
283
+ "street": "Hacked Address",
284
+ "city": "Exploit City"
285
+ }
286
+
287
+ # If 200 OK: Address created under victim's account
288
+ ```
289
+
290
+ ### Example 3: Static File IDOR
291
+ ```
292
+ # Download own receipt
293
+ GET /api/download/5 HTTP/1.1
294
+ Cookie: session=attacker_session
295
+
296
+ # Response: PDF of attacker's receipt (order #5)
297
+
298
+ # Attempt to access other receipts
299
+ GET /api/download/3 HTTP/1.1
300
+ Cookie: session=attacker_session
301
+
302
+ # Vulnerable Response: PDF of victim's receipt (order #3)!
303
+ ```
304
+
305
+ ### Example 4: Burp Intruder Enumeration
306
+ ```
307
+ # Configure Intruder attack
308
+ Target: PUT /api/addresses/§1§/update
309
+ Payload Position: Address ID in URL and body
310
+
311
+ Attack Configuration:
312
+ - Type: Battering Ram
313
+ - Payload: Numbers 0-20, Step 1
314
+
315
+ Body Template:
316
+ {
317
+ "id": §1§,
318
+ "userId": 3
319
+ }
320
+
321
+ # Analyze results:
322
+ # - 200 responses indicate successful modification
323
+ # - Check victim's account for new addresses
324
+ ```
325
+
326
+ ### Example 5: Horizontal to Vertical Escalation
327
+ ```
328
+ # Step 1: Enumerate user roles
329
+ GET /api/user/1 → {"role": "user", "id": 1}
330
+ GET /api/user/2 → {"role": "user", "id": 2}
331
+ GET /api/user/3 → {"role": "admin", "id": 3}
332
+
333
+ # Step 2: Access admin functions with discovered ID
334
+ GET /api/admin/dashboard?userId=3 HTTP/1.1
335
+ Cookie: session=regular_user_session
336
+
337
+ # If accessible: Vertical privilege escalation achieved
338
+ ```
339
+
340
+ ## Troubleshooting
341
+
342
+ ### Issue: All Requests Return 403 Forbidden
343
+ **Cause**: Server-side access control is implemented
344
+ **Solution**:
345
+ ```
346
+ # Try alternative attack vectors:
347
+ 1. HTTP method switching (GET → POST → PUT)
348
+ 2. Add X-Original-URL or X-Rewrite-URL headers
349
+ 3. Try parameter pollution: ?id=1001&id=1000
350
+ 4. URL encoding variations: %31%30%30%30 for "1000"
351
+ 5. Case variations for string IDs
352
+ ```
353
+
354
+ ### Issue: Application Uses UUIDs Instead of Sequential IDs
355
+ **Cause**: Randomized identifiers reduce enumeration risk
356
+ **Solution**:
357
+ ```
358
+ # UUID discovery techniques:
359
+ 1. Check response bodies for leaked UUIDs
360
+ 2. Search JavaScript files for hardcoded UUIDs
361
+ 3. Check API responses that list multiple objects
362
+ 4. Look for UUID patterns in error messages
363
+ 5. Try UUID v1 (time-based) prediction if applicable
364
+ ```
365
+
366
+ ### Issue: Session Token Bound to User
367
+ **Cause**: Application validates session against requested resource
368
+ **Solution**:
369
+ ```
370
+ # Advanced bypass attempts:
371
+ 1. Test for IDOR in unauthenticated endpoints
372
+ 2. Check password reset/email verification flows
373
+ 3. Look for IDOR in file upload/download
374
+ 4. Test API versioning: /api/v1/ vs /api/v2/
375
+ 5. Check mobile API endpoints (often less protected)
376
+ ```
377
+
378
+ ### Issue: Rate Limiting Blocks Enumeration
379
+ **Cause**: Application implements request throttling
380
+ **Solution**:
381
+ ```
382
+ # Bypass techniques:
383
+ 1. Add delays between requests (Burp Intruder throttle)
384
+ 2. Rotate IP addresses (proxy chains)
385
+ 3. Target specific high-value IDs instead of full range
386
+ 4. Use different endpoints for same resources
387
+ 5. Test during off-peak hours
388
+ ```
389
+
390
+ ### Issue: Cannot Verify IDOR Impact
391
+ **Cause**: Response doesn't clearly indicate data ownership
392
+ **Solution**:
393
+ ```
394
+ # Verification methods:
395
+ 1. Create unique identifiable data in victim account
396
+ 2. Look for PII markers (name, email) in responses
397
+ 3. Compare response lengths between users
398
+ 4. Check for timing differences in responses
399
+ 5. Use secondary indicators (creation dates, metadata)
400
+ ```
401
+
402
+ ## Remediation Guidance
403
+
404
+ ### Implement Proper Access Control
405
+ ```python
406
+ # Django example - validate ownership
407
+ def update_address(request, address_id):
408
+ address = Address.objects.get(id=address_id)
409
+
410
+ # Verify ownership before allowing update
411
+ if address.user != request.user:
412
+ return HttpResponseForbidden("Unauthorized")
413
+
414
+ # Proceed with update
415
+ address.update(request.data)
416
+ ```
417
+
418
+ ### Use Indirect References
419
+ ```python
420
+ # Instead of: /api/address/123
421
+ # Use: /api/address/current-user/billing
422
+
423
+ def get_address(request):
424
+ # Always filter by authenticated user
425
+ address = Address.objects.filter(user=request.user).first()
426
+ return address
427
+ ```
428
+
429
+ ### Server-Side Validation
430
+ ```python
431
+ # Always validate on server, never trust client input
432
+ def download_receipt(request, receipt_id):
433
+ receipt = Receipt.objects.filter(
434
+ id=receipt_id,
435
+ user=request.user # Critical: filter by current user
436
+ ).first()
437
+
438
+ if not receipt:
439
+ return HttpResponseNotFound()
440
+
441
+ return FileResponse(receipt.file)
442
+ ```
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: inngest
3
+ description: "Inngest expert for serverless-first background jobs, event-driven workflows, and durable execution without managing queues or workers. Use when: inngest, serverless background job, event-driven workflow, step function, durable execution."
4
+ source: vibeship-spawner-skills (Apache 2.0)
5
+ ---
6
+
7
+ # Inngest Integration
8
+
9
+ You are an Inngest expert who builds reliable background processing without
10
+ managing infrastructure. You understand that serverless doesn't mean you can't
11
+ have durable, long-running workflows - it means you don't manage the workers.
12
+
13
+ You've built AI pipelines that take minutes, onboarding flows that span days,
14
+ and event-driven systems that process millions of events. You know that the
15
+ magic of Inngest is in its steps - each one a checkpoint that survives failures.
16
+
17
+ Your core philosophy:
18
+ 1. Event
19
+
20
+ ## Capabilities
21
+
22
+ - inngest-functions
23
+ - event-driven-workflows
24
+ - step-functions
25
+ - serverless-background-jobs
26
+ - durable-sleep
27
+ - fan-out-patterns
28
+ - concurrency-control
29
+ - scheduled-functions
30
+
31
+ ## Patterns
32
+
33
+ ### Basic Function Setup
34
+
35
+ Inngest function with typed events in Next.js
36
+
37
+ ### Multi-Step Workflow
38
+
39
+ Complex workflow with parallel steps and error handling
40
+
41
+ ### Scheduled/Cron Functions
42
+
43
+ Functions that run on a schedule
44
+
45
+ ## Anti-Patterns
46
+
47
+ ### ❌ Not Using Steps
48
+
49
+ ### ❌ Huge Event Payloads
50
+
51
+ ### ❌ Ignoring Concurrency
52
+
53
+ ## Related Skills
54
+
55
+ Works well with: `nextjs-app-router`, `vercel-deployment`, `supabase-backend`, `email-systems`, `ai-agents-architect`, `stripe-integration`