opencode-skills-collection 4.0.67 → 4.0.69

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 (329) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +281 -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/anti-slop-design/SKILL.md +393 -0
  19. package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +1 -0
  20. package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
  21. package/bundled-skills/argocd-gitops/SKILL.md +469 -0
  22. package/bundled-skills/arm-templates/SKILL.md +438 -0
  23. package/bundled-skills/arm-templates/references/details.md +64 -0
  24. package/bundled-skills/artifact-yylo/SKILL.md +122 -0
  25. package/bundled-skills/asset-inventory/SKILL.md +412 -0
  26. package/bundled-skills/asset-inventory/references/details.md +127 -0
  27. package/bundled-skills/audit-logging/SKILL.md +476 -0
  28. package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
  29. package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
  30. package/bundled-skills/aws-ec2/SKILL.md +426 -0
  31. package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
  32. package/bundled-skills/aws-iam/SKILL.md +463 -0
  33. package/bundled-skills/aws-lambda/SKILL.md +428 -0
  34. package/bundled-skills/aws-rds/SKILL.md +380 -0
  35. package/bundled-skills/aws-s3/SKILL.md +434 -0
  36. package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
  37. package/bundled-skills/aws-vpc/SKILL.md +436 -0
  38. package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
  39. package/bundled-skills/azure-aks/SKILL.md +423 -0
  40. package/bundled-skills/azure-devops/SKILL.md +457 -0
  41. package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
  42. package/bundled-skills/azure-keyvault/SKILL.md +455 -0
  43. package/bundled-skills/azure-keyvault/references/details.md +83 -0
  44. package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
  45. package/bundled-skills/azure-networking/SKILL.md +448 -0
  46. package/bundled-skills/azure-networking/references/details.md +135 -0
  47. package/bundled-skills/azure-sql/SKILL.md +413 -0
  48. package/bundled-skills/azure-sql/references/details.md +113 -0
  49. package/bundled-skills/azure-vms/SKILL.md +402 -0
  50. package/bundled-skills/azure-vms/references/details.md +134 -0
  51. package/bundled-skills/backup-recovery/SKILL.md +388 -0
  52. package/bundled-skills/bb-methodology/SKILL.md +451 -0
  53. package/bundled-skills/bb-methodology/references/details.md +120 -0
  54. package/bundled-skills/block-storage/SKILL.md +371 -0
  55. package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
  56. package/bundled-skills/blue-green-deploy/references/details.md +90 -0
  57. package/bundled-skills/bug-bounty/SKILL.md +447 -0
  58. package/bundled-skills/bug-bounty/references/details.md +1316 -0
  59. package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
  60. package/bundled-skills/business-continuity/SKILL.md +463 -0
  61. package/bundled-skills/career-ops/SKILL.md +186 -0
  62. package/bundled-skills/cdn-setup/SKILL.md +374 -0
  63. package/bundled-skills/change-management/SKILL.md +438 -0
  64. package/bundled-skills/change-management/references/details.md +105 -0
  65. package/bundled-skills/circleci/SKILL.md +475 -0
  66. package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
  67. package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
  68. package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
  69. package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
  70. package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
  71. package/bundled-skills/cloudformation/SKILL.md +461 -0
  72. package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
  73. package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
  74. package/bundled-skills/container-hardening/SKILL.md +126 -0
  75. package/bundled-skills/container-registries/SKILL.md +435 -0
  76. package/bundled-skills/container-scanning/SKILL.md +416 -0
  77. package/bundled-skills/convex-backend/SKILL.md +338 -0
  78. package/bundled-skills/dast-scanning/SKILL.md +437 -0
  79. package/bundled-skills/database-backups/SKILL.md +425 -0
  80. package/bundled-skills/datadog/SKILL.md +487 -0
  81. package/bundled-skills/dependency-scanning/SKILL.md +457 -0
  82. package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
  83. package/bundled-skills/disaster-recovery/SKILL.md +374 -0
  84. package/bundled-skills/disaster-recovery/references/details.md +219 -0
  85. package/bundled-skills/dns-management/SKILL.md +375 -0
  86. package/bundled-skills/docker-compose/SKILL.md +482 -0
  87. package/bundled-skills/docker-management/SKILL.md +426 -0
  88. package/bundled-skills/ebpf-observability/SKILL.md +436 -0
  89. package/bundled-skills/ebpf-observability/references/details.md +542 -0
  90. package/bundled-skills/elk-stack/SKILL.md +487 -0
  91. package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
  92. package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
  93. package/bundled-skills/feature-flags/SKILL.md +426 -0
  94. package/bundled-skills/feature-flags/references/details.md +86 -0
  95. package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
  96. package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
  97. package/bundled-skills/firewall-config/SKILL.md +479 -0
  98. package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
  99. package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
  100. package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
  101. package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
  102. package/bundled-skills/gcp-compute/SKILL.md +319 -0
  103. package/bundled-skills/gcp-gke/SKILL.md +307 -0
  104. package/bundled-skills/gcp-networking/SKILL.md +293 -0
  105. package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
  106. package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
  107. package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
  108. package/bundled-skills/gdpr-compliance/references/details.md +145 -0
  109. package/bundled-skills/geo-audit/SKILL.md +368 -0
  110. package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
  111. package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
  112. package/bundled-skills/geo-citability/SKILL.md +350 -0
  113. package/bundled-skills/geo-compare/SKILL.md +340 -0
  114. package/bundled-skills/geo-content/SKILL.md +383 -0
  115. package/bundled-skills/geo-crawlers/SKILL.md +408 -0
  116. package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
  117. package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
  118. package/bundled-skills/geo-proposal/SKILL.md +378 -0
  119. package/bundled-skills/geo-prospect/SKILL.md +225 -0
  120. package/bundled-skills/geo-report/SKILL.md +436 -0
  121. package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
  122. package/bundled-skills/geo-schema/SKILL.md +408 -0
  123. package/bundled-skills/geo-technical/SKILL.md +78 -0
  124. package/bundled-skills/geo-technical/references/details.md +543 -0
  125. package/bundled-skills/git-workflow/SKILL.md +460 -0
  126. package/bundled-skills/github-actions/SKILL.md +368 -0
  127. package/bundled-skills/gitlab-ci/SKILL.md +340 -0
  128. package/bundled-skills/google-no-code/SKILL.md +136 -0
  129. package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
  130. package/bundled-skills/gpu-server-management/SKILL.md +236 -0
  131. package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
  132. package/bundled-skills/helm-charts/SKILL.md +469 -0
  133. package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
  134. package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
  135. package/bundled-skills/hunt-ato/SKILL.md +184 -0
  136. package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
  137. package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
  138. package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
  139. package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
  140. package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
  141. package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
  142. package/bundled-skills/hunt-cicd/SKILL.md +311 -0
  143. package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
  144. package/bundled-skills/hunt-cors/SKILL.md +335 -0
  145. package/bundled-skills/hunt-dom/SKILL.md +323 -0
  146. package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
  147. package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
  148. package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
  149. package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
  150. package/bundled-skills/hunt-grpc/SKILL.md +317 -0
  151. package/bundled-skills/hunt-host-header/SKILL.md +309 -0
  152. package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
  153. package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
  154. package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
  155. package/bundled-skills/hunt-idor/SKILL.md +434 -0
  156. package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
  157. package/bundled-skills/hunt-k8s/SKILL.md +337 -0
  158. package/bundled-skills/hunt-laravel/SKILL.md +255 -0
  159. package/bundled-skills/hunt-ldap/SKILL.md +351 -0
  160. package/bundled-skills/hunt-lfi/SKILL.md +311 -0
  161. package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
  162. package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
  163. package/bundled-skills/hunt-misc/SKILL.md +378 -0
  164. package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
  165. package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
  166. package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
  167. package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
  168. package/bundled-skills/hunt-oauth/SKILL.md +459 -0
  169. package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
  170. package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
  171. package/bundled-skills/hunt-race-condition/references/details.md +159 -0
  172. package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
  173. package/bundled-skills/hunt-rce/SKILL.md +444 -0
  174. package/bundled-skills/hunt-rce/references/details.md +110 -0
  175. package/bundled-skills/hunt-saml/SKILL.md +156 -0
  176. package/bundled-skills/hunt-session/SKILL.md +342 -0
  177. package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
  178. package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
  179. package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
  180. package/bundled-skills/hunt-springboot/SKILL.md +285 -0
  181. package/bundled-skills/hunt-sqli/SKILL.md +466 -0
  182. package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
  183. package/bundled-skills/hunt-ssrf/references/details.md +179 -0
  184. package/bundled-skills/hunt-ssti/SKILL.md +163 -0
  185. package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
  186. package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
  187. package/bundled-skills/hunt-xxe/SKILL.md +466 -0
  188. package/bundled-skills/i-have-adhd/SKILL.md +170 -0
  189. package/bundled-skills/idea-evaluator/SKILL.md +75 -0
  190. package/bundled-skills/idea-evaluator/idea-evaluator-con/SKILL.md +64 -0
  191. package/bundled-skills/idea-evaluator/idea-evaluator-pro/SKILL.md +64 -0
  192. package/bundled-skills/identity-access-management/SKILL.md +382 -0
  193. package/bundled-skills/identity-access-management/references/details.md +524 -0
  194. package/bundled-skills/incident-management/SKILL.md +484 -0
  195. package/bundled-skills/incident-response/SKILL.md +448 -0
  196. package/bundled-skills/incident-response/references/details.md +113 -0
  197. package/bundled-skills/interview-me/SKILL.md +248 -0
  198. package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
  199. package/bundled-skills/jenkins/SKILL.md +462 -0
  200. package/bundled-skills/jev-use/SKILL.md +158 -0
  201. package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
  202. package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
  203. package/bundled-skills/kubernetes-ops/references/details.md +108 -0
  204. package/bundled-skills/kustomize/SKILL.md +478 -0
  205. package/bundled-skills/ledger-tasks-yylo/SKILL.md +219 -0
  206. package/bundled-skills/linux-administration/SKILL.md +367 -0
  207. package/bundled-skills/linux-hardening/SKILL.md +154 -0
  208. package/bundled-skills/llm-app-security/SKILL.md +389 -0
  209. package/bundled-skills/llm-app-security/references/details.md +674 -0
  210. package/bundled-skills/llm-caching/SKILL.md +334 -0
  211. package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
  212. package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
  213. package/bundled-skills/llm-gateway/SKILL.md +282 -0
  214. package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
  215. package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
  216. package/bundled-skills/load-balancing/SKILL.md +403 -0
  217. package/bundled-skills/loki-logging/SKILL.md +479 -0
  218. package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package-lock.json +4 -4
  219. package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package.json +1 -1
  220. package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
  221. package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
  222. package/bundled-skills/mcp-server-security/SKILL.md +356 -0
  223. package/bundled-skills/mcp-server-security/references/details.md +745 -0
  224. package/bundled-skills/mdm-device-management/SKILL.md +404 -0
  225. package/bundled-skills/mdm-device-management/references/details.md +410 -0
  226. package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
  227. package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
  228. package/bundled-skills/model-registry-governance/SKILL.md +452 -0
  229. package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
  230. package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
  231. package/bundled-skills/mongodb/SKILL.md +436 -0
  232. package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
  233. package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
  234. package/bundled-skills/mysql/SKILL.md +390 -0
  235. package/bundled-skills/new-relic/SKILL.md +472 -0
  236. package/bundled-skills/nfs-storage/SKILL.md +356 -0
  237. package/bundled-skills/object-storage/SKILL.md +378 -0
  238. package/bundled-skills/offensive-osint/SKILL.md +443 -0
  239. package/bundled-skills/okta-attack/SKILL.md +436 -0
  240. package/bundled-skills/ollama-stack/SKILL.md +379 -0
  241. package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
  242. package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
  243. package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
  244. package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
  245. package/bundled-skills/openshift/SKILL.md +485 -0
  246. package/bundled-skills/opentelemetry/SKILL.md +438 -0
  247. package/bundled-skills/opentelemetry/references/details.md +78 -0
  248. package/bundled-skills/opentofu-migration/SKILL.md +349 -0
  249. package/bundled-skills/osint-methodology/SKILL.md +460 -0
  250. package/bundled-skills/osint-methodology/references/details.md +1350 -0
  251. package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
  252. package/bundled-skills/penetration-testing/SKILL.md +152 -0
  253. package/bundled-skills/performance-tuning/SKILL.md +381 -0
  254. package/bundled-skills/plan-ledger-tasks-yylo/SKILL.md +52 -0
  255. package/bundled-skills/planetscale/SKILL.md +297 -0
  256. package/bundled-skills/platform-engineering/SKILL.md +348 -0
  257. package/bundled-skills/platform-engineering/references/details.md +944 -0
  258. package/bundled-skills/podman/SKILL.md +405 -0
  259. package/bundled-skills/policy-as-code/SKILL.md +434 -0
  260. package/bundled-skills/policy-as-code/references/details.md +204 -0
  261. package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
  262. package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
  263. package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
  264. package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
  265. package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
  266. package/bundled-skills/rag-observability-evals/references/details.md +92 -0
  267. package/bundled-skills/ralph-loop-yylo/SKILL.md +55 -0
  268. package/bundled-skills/ralph-loop-yylo/references/first_check.md +18 -0
  269. package/bundled-skills/ralph-loop-yylo/references/implement.md +60 -0
  270. package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
  271. package/bundled-skills/redis/SKILL.md +421 -0
  272. package/bundled-skills/redteam-report-template/SKILL.md +370 -0
  273. package/bundled-skills/report-writing/SKILL.md +426 -0
  274. package/bundled-skills/report-writing/references/details.md +187 -0
  275. package/bundled-skills/resumable-implementation-contracts/SKILL.md +254 -0
  276. package/bundled-skills/reverse-proxy/SKILL.md +420 -0
  277. package/bundled-skills/runbook-creation/SKILL.md +438 -0
  278. package/bundled-skills/runbook-creation/references/details.md +71 -0
  279. package/bundled-skills/saas-security-posture/SKILL.md +415 -0
  280. package/bundled-skills/sast-scanning/SKILL.md +444 -0
  281. package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
  282. package/bundled-skills/security-arsenal/SKILL.md +446 -0
  283. package/bundled-skills/security-arsenal/references/details.md +540 -0
  284. package/bundled-skills/security-automation/SKILL.md +146 -0
  285. package/bundled-skills/semantic-versioning/SKILL.md +434 -0
  286. package/bundled-skills/semantic-versioning/references/details.md +83 -0
  287. package/bundled-skills/service-mesh/SKILL.md +422 -0
  288. package/bundled-skills/soc2-compliance/SKILL.md +409 -0
  289. package/bundled-skills/sops-encryption/SKILL.md +124 -0
  290. package/bundled-skills/sre-dashboards/SKILL.md +143 -0
  291. package/bundled-skills/ssh-configuration/SKILL.md +324 -0
  292. package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
  293. package/bundled-skills/ssl-tls-management/references/details.md +99 -0
  294. package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
  295. package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
  296. package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
  297. package/bundled-skills/systemd-services/SKILL.md +379 -0
  298. package/bundled-skills/terraform-aws/SKILL.md +125 -0
  299. package/bundled-skills/terraform-azure/SKILL.md +415 -0
  300. package/bundled-skills/terraform-azure/references/details.md +231 -0
  301. package/bundled-skills/terraform-gcp/SKILL.md +369 -0
  302. package/bundled-skills/threat-modeling/SKILL.md +487 -0
  303. package/bundled-skills/understand-project-yylo/SKILL.md +62 -0
  304. package/bundled-skills/user-management/SKILL.md +383 -0
  305. package/bundled-skills/using-agent-skills/SKILL.md +220 -0
  306. package/bundled-skills/vector-database-ops/SKILL.md +300 -0
  307. package/bundled-skills/vendor-management/SKILL.md +439 -0
  308. package/bundled-skills/vendor-management/references/details.md +109 -0
  309. package/bundled-skills/vercel-deployments/SKILL.md +296 -0
  310. package/bundled-skills/vllm-server/SKILL.md +236 -0
  311. package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
  312. package/bundled-skills/vpn-setup/SKILL.md +452 -0
  313. package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
  314. package/bundled-skills/waf-setup/SKILL.md +354 -0
  315. package/bundled-skills/waf-setup/references/details.md +211 -0
  316. package/bundled-skills/weather-model-data-fetching/SKILL.md +277 -0
  317. package/bundled-skills/weather-observation-fetching/SKILL.md +246 -0
  318. package/bundled-skills/web2-recon/SKILL.md +440 -0
  319. package/bundled-skills/web2-recon/references/details.md +319 -0
  320. package/bundled-skills/web3-audit/SKILL.md +445 -0
  321. package/bundled-skills/web3-audit/references/details.md +224 -0
  322. package/bundled-skills/wiki-yylo/SKILL.md +114 -0
  323. package/bundled-skills/windows-hardening/SKILL.md +454 -0
  324. package/bundled-skills/windows-hardening/references/details.md +204 -0
  325. package/bundled-skills/windows-server/SKILL.md +318 -0
  326. package/bundled-skills/workflow-yylo/SKILL.md +107 -0
  327. package/bundled-skills/zero-trust/SKILL.md +461 -0
  328. package/package.json +1 -1
  329. package/skills_index.json +6924 -0
@@ -0,0 +1,382 @@
1
+ ---
2
+ name: hunt-cache-poison
3
+ description: Hunting skill for cache poison vulnerabilities.
4
+ category: security
5
+ risk: offensive
6
+ source: https://github.com/elementalsouls/Claude-BugHunter
7
+ source_repo: elementalsouls/Claude-BugHunter
8
+ source_type: community
9
+ date_added: '2026-09-20'
10
+ license: MIT
11
+ license_source: https://github.com/elementalsouls/Claude-BugHunter/blob/main/LICENSE
12
+ compatibility: Requires explicit written authorization for a target scope plus the
13
+ relevant testing tools for this technique. Docs-only; helper scripts and commands
14
+ not bundled.
15
+ sources: github, hackerone_public, portswigger_research, omergil_research, youstin_research
16
+ report_count: 8
17
+ ---
18
+ > **⚠️ AUTHORIZED USE ONLY**
19
+ > This skill is for educational purposes or authorized security assessments only.
20
+ > You must have explicit, written permission from the system owner before using this tool.
21
+ > Misuse of this tool is illegal and strictly prohibited.
22
+
23
+ > **Mandatory confirmation gate**
24
+ > Before running any command that probes, exploits, changes, persists on, extracts data from, or attempts credential access against a target:
25
+ > 1. Ask the user to state the exact target URL, IP, account, or resource.
26
+ > 2. Ask the user to confirm written authorization and the permitted scope.
27
+ > 3. Show the exact command(s) and explain their expected effect.
28
+ > 4. Wait for explicit confirmation in the current conversation.
29
+ >
30
+ > Without that confirmation, remain read-only and provide defensive guidance only. Prefer a sandbox, disposable VM, or controlled lab.
31
+
32
+ ## Crown Jewel Targets
33
+
34
+ Cache poisoning is high-value because a single poisoned cache entry can affect thousands or millions of victims simultaneously — one request, mass exploitation. Payout scales with blast radius.
35
+
36
+ **Highest-value targets:**
37
+ - **CDN-served assets** (cdn.shopify.com, cloudfront distributions, Fastly/Akamai edges) — poisoning these affects every visitor globally
38
+ - **E-commerce platforms** with affiliate/referral flows (Shopify, WooCommerce storefronts) — session hijack or affiliate fraud potential
39
+ - **Gaming platforms with update servers** (rockstargames updates.* domains) — DoS on update delivery = widespread client breakage
40
+ - **Authentication endpoints** served through caches — leads to account takeover (the highest severity variant)
41
+ - **Asset CDNs** (JS/CSS delivery) — XSS payload delivery at scale
42
+ - **SaaS multi-tenant platforms** — one poisoned response bleeds into all tenants sharing a cache key
43
+
44
+ **Asset types that pay most:** CDN hostnames, subdomain-per-tenant patterns, update/download servers, login/account pages cached incorrectly, affiliate link shorteners.
45
+
46
+ ---
47
+
48
+ ## Autonomous Testing Priority
49
+
50
+ **Two distinct attacks live under this skill — target the simpler one first.**
51
+
52
+ **Attack 1 — Password Reset Poisoning (Host header injection):**
53
+
54
+ The app uses the `Host` header to construct the password reset link in the email. Inject an attacker-controlled hostname; the victim's reset email contains a link to your server.
55
+
56
+ ```
57
+ POST /forgot-password
58
+ Host: attacker.com
59
+ X-Forwarded-Host: attacker.com
60
+ X-Host: attacker.com
61
+
62
+ email=victim@target.com
63
+ Content-Type: application/x-www-form-urlencoded
64
+ ```
65
+
66
+ Use a distinctive hostname you control or can identify in the response. **Proof:** the injected hostname appears in the response body (some apps reflect the generated reset link), or the action succeeds (2xx with a "reset email sent" message) after injection — confirming the poisoned link would be sent to the victim.
67
+
68
+ Try multiple host headers — apps vary in which one they trust (`X-Forwarded-Host` is most common, but `Host` itself also works when the proxy passes it through).
69
+
70
+ **Attack 2 — Web Cache Poisoning:**
71
+
72
+ Inject the attacker-controlled hostname into `X-Forwarded-Host` on a GET request for a cacheable page. If the hostname is reflected in the response body AND the response gets cached, subsequent visitors receive the poisoned response.
73
+
74
+ Check for cache signals in the response: `X-Cache: HIT`, `CF-Cache-Status: HIT`, `Age: <nonzero>`, or `Via: cloudfront/varnish/fastly`.
75
+
76
+ **Proof for both:** injected value reflected in response body, or action completed successfully despite the manipulated header.
77
+
78
+ ---
79
+
80
+ ## Attack Surface Signals
81
+
82
+ **URL patterns to look for:**
83
+ - `cdn.`, `assets.`, `static.`, `updates.`, `downloads.` subdomains
84
+ - URL path structures with extensions that look static: `/path/to/page.css`, `/account.php/nonexistent.jpg`
85
+ - Affiliate/link shortener endpoints: `/link/`, `/go/`, `/ref/`, `/out/`
86
+ - Paths that mix dynamic content with cacheable-looking URLs
87
+
88
+ **Response headers that signal a cache:**
89
+ ```
90
+ X-Cache: HIT / MISS
91
+ X-Cache-Status: HIT
92
+ CF-Cache-Status: HIT / MISS (Cloudflare)
93
+ Age: <nonzero>
94
+ Via: 1.1 varnish / cloudfront / fastly
95
+ Cache-Control: public, max-age=...
96
+ Surrogate-Control: max-age=...
97
+ X-Served-By: cache-...
98
+ ```
99
+
100
+ **JS/tech stack signals:**
101
+ - Fastly, Varnish, Cloudfront, Akamai, Nginx proxy_cache in response headers
102
+ - Shopify/Linkpop stacks with third-party integrations
103
+ - Platforms using path-based routing without normalizing trailing segments
104
+ - Servers that reflect unvalidated headers into responses (Host, X-Forwarded-Host, X-Original-URL)
105
+
106
+ **Dangerous header candidates (unkeyed inputs):**
107
+ ```
108
+ X-Forwarded-Host
109
+ X-Host
110
+ X-Forwarded-Scheme
111
+ X-Original-URL
112
+ X-Rewrite-URL
113
+ Forwarded
114
+ X-HTTP-Method-Override
115
+ ```
116
+
117
+ ---
118
+
119
+ ## Step-by-Step Hunting Methodology
120
+
121
+ 1. **Map cache infrastructure.** Send a GET to the target and inspect response headers. Identify the caching layer (Cloudflare, Fastly, Varnish, Nginx). Note `Age`, `X-Cache`, `CF-Cache-Status` headers.
122
+
123
+ 2. **Identify cache key components.** Send two identical requests — if `Age` increments, the response is cached. Vary headers one-by-one (e.g., add `X-Forwarded-Host`) to determine which headers are NOT included in the cache key (unkeyed).
124
+
125
+ 3. **Test unkeyed header reflection.** Add `X-Forwarded-Host: evil.com` and check if the value appears in the response body (redirects, canonical links, CSP headers, JS src attributes, meta tags). Append a unique cache-busting query parameter (e.g. `?cb=<random>`) so the probe lands on a cache MISS under a throwaway key — this verifies reflection without prematurely storing a live poison entry under the real, victim-shared cache key. (Param Miner's "Guess headers" mode is the canonical Burp tool for discovering these unkeyed headers/parameters automatically.)
126
+
127
+ 4. **Test URL path manipulation (Web Cache Deception).** Append fake static extensions to dynamic endpoints:
128
+ - `GET /account/profile.css`
129
+ - `GET /dashboard/settings.jpg`
130
+ - `GET /affiliate-link/target.js`
131
+ Check if the server returns dynamic content AND the cache stores it.
132
+
133
+ 5. **Test for DoS via cache poisoning.** Send a request with a header that causes a 4xx/5xx error and check if that error response gets cached:
134
+ - Malformed `Host` header
135
+ - `X-Forwarded-Host` pointing to an invalid host
136
+ - Oversized headers that trigger backend errors
137
+
138
+ 6. **Confirm unkeyed parameter poisoning.** Try query parameter fatigue or HTTP parameter pollution:
139
+ - `GET /page?utm_source="><script>alert(1)</script>`
140
+ Check if the param is reflected and cached for clean requests to `/page`.
141
+
142
+ 7. **Validate cache storage.** After sending a potentially poisoned request, immediately request the same URL WITHOUT the malicious header from a different IP or incognito session. If you receive the poisoned response — it's confirmed.
143
+
144
+ 8. **Measure cache TTL.** Check `Cache-Control: max-age` and `Age` to understand how long the poison persists and whether it's exploitable before expiry.
145
+
146
+ 9. **Check affiliate/link flows specifically.** For platforms like Linkpop, test whether the referrer/product URL is embedded in a cacheable response that another user will receive.
147
+
148
+ 10. **Document blast radius.** Determine: global CDN edge (worldwide), regional cache, or single-server cache. This directly affects severity rating.
149
+
150
+ ---
151
+
152
+ ## Payload & Detection Patterns
153
+
154
+ **Confirm caching behavior:**
155
+ ```bash
156
+ # Send twice, compare Age header
157
+ curl -s -I "https://target.com/page" | grep -i "age\|x-cache\|cf-cache"
158
+ curl -s -I "https://target.com/page" | grep -i "age\|x-cache\|cf-cache"
159
+ ```
160
+
161
+ **Test unkeyed X-Forwarded-Host:**
162
+ ```bash
163
+ curl -s -H "X-Forwarded-Host: evil.attacker.com" \
164
+ "https://target.com/page" | grep -i "evil.attacker.com"
165
+ ```
166
+
167
+ **Test Web Cache Deception (path appending):**
168
+ ```bash
169
+ # Authenticated session cookie required
170
+ curl -s -b "session=YOUR_SESSION" \
171
+ "https://target.com/account/profile.css"
172
+
173
+ # Then fetch without auth from another client
174
+ curl -s "https://target.com/account/profile.css"
175
+ ```
176
+
177
+ **Force cache miss to test poison without hitting cached version:**
178
+ ```bash
179
+ # Use a unique cache-busting query param to land on a fresh key — do NOT rely on
180
+ # client-sent "Cache-Control: no-cache" (per RFC 7234 it requests revalidation, not
181
+ # skip-storage, and Cloudflare/Fastly/Akamai generally ignore it on cacheable assets).
182
+ curl -s -H "X-Forwarded-Host: canary.attacker.com" \
183
+ "https://target.com/page?cb=$RANDOM"
184
+ ```
185
+
186
+ **DoS via poisoned error response:**
187
+ ```bash
188
+ curl -s -H "X-Forwarded-Host: aaaaaaaaaaa.invalid" \
189
+ "https://target.com/js/app.js" -I
190
+ # Check if next clean request returns error
191
+ curl -s -I "https://target.com/js/app.js" | grep "HTTP/"
192
+ ```
193
+
194
+ **Grep patterns in Burp/ZAP response history:**
195
+ ```
196
+ # Headers indicating cache hit
197
+ X-Cache: HIT
198
+ CF-Cache-Status: HIT
199
+ Age: [1-9]
200
+
201
+ # Reflected unkeyed input in body
202
+ evil\.attacker\.com
203
+ canary\d+\.
204
+
205
+ # Web cache deception indicators
206
+ Content-Type: text/css (but response is HTML/JSON)
207
+ Cache-Control: public.*max-age (on authenticated endpoint)
208
+ ```
209
+
210
+ **Parameter pollution test:**
211
+ ```bash
212
+ curl -s "https://target.com/page?cb=1&param=CANARY_VALUE" | grep CANARY_VALUE
213
+ # Then check if clean request returns poisoned version
214
+ curl -s "https://target.com/page?cb=1"
215
+ ```
216
+
217
+ **Burp Suite Intruder wordlist for unkeyed headers:**
218
+ ```
219
+ X-Forwarded-Host
220
+ X-Host
221
+ X-Forwarded-Server
222
+ X-HTTP-Host-Override
223
+ Forwarded
224
+ X-Original-URL
225
+ X-Rewrite-URL
226
+ X-Forwarded-Scheme
227
+ X-Forwarded-Proto
228
+ True-Client-IP
229
+ ```
230
+
231
+ ---
232
+
233
+ ### Origin header → ACAO cache poisoning
234
+ Add `Origin` to the unkeyed-header set. Test whether it is reflected into `Access-Control-Allow-Origin` and then cached: `curl -H "Origin: evil.example" URL -I` on two consecutive hits. A cached attacker/`*` ACAO breaks CORS for legit users (cache-DoS); a cached permissive ACAO enables cross-user data reads. Disclosed: reports/591302.
235
+
236
+ ## Common Root Causes
237
+
238
+ 1. **CDN misconfiguration — caching based on URL path only.** Engineers configure cache rules like "cache everything matching `*.js`" without realizing the path can be appended to dynamic routes. The origin server ignores the extra path segments, but the CDN uses them as cache keys.
239
+
240
+ 2. **Unkeyed header forwarding.** Developers configure reverse proxies to forward `X-Forwarded-Host` to backends for URL generation (canonical links, redirects, password reset emails) without including it in the cache key. The CDN caches the poisoned response.
241
+
242
+ 3. **Web Cache Deception via permissive routing.** Frameworks that normalize URLs (e.g., Rails, Express) accept `/account/settings.css` and serve the same response as `/account/settings`. The CDN sees a `.css` extension and applies aggressive caching rules.
243
+
244
+ 4. **Shared caching of multi-tenant responses.** SaaS platforms that use a single CDN without tenant isolation in the cache key allow cross-tenant cache poisoning.
245
+
246
+ 5. **Error responses cached without thought.** Backend errors (404, 500) triggered by attacker-controlled input get cached, causing DoS for legitimate users. Developers implement caching without excluding error status codes.
247
+
248
+ 6. **Lazy `Vary` header implementation.** Developers know they should add `Vary: X-Forwarded-Host` but forget, or CDNs strip/ignore `Vary` headers entirely (Cloudflare historically strips Vary on some asset types).
249
+
250
+ 7. **Third-party integrations with URL reflection.** Affiliate/link tracking systems (like Shopify Linkpop) reflect the destination URL in metadata, canonical tags, or redirects — and these get cached globally.
251
+
252
+ ---
253
+
254
+ ## Bypass Techniques
255
+
256
+ **Defense: WAF blocking known poison headers**
257
+ - Bypass: Use less-common header variants: `X-Host`, `X-Forwarded-Server`, `X-HTTP-Host-Override`, `Forwarded: host=evil.com`, `X-Original-URL`
258
+ - Bypass: Header value encoding: `X-Forwarded-Host: evil%2ecom`
259
+ - Bypass: Case variation: `x-forwarded-host`, `X-FORWARDED-HOST`
260
+
261
+ **Defense: Stripping attacker-supplied headers at edge**
262
+ - Bypass: Use HTTP/2 pseudo-header manipulation if the proxy downgrades to HTTP/1.1
263
+ - Bypass: Inject via HTTP Request Smuggling — smuggle a request with poison headers past the WAF to hit the cache server directly
264
+
265
+ **Defense: Require authentication before caching**
266
+ - Bypass: Web Cache Deception — trick the cache into storing authenticated content by appending `.css`/`.js` to the URL, which matches a cache rule that ignores auth
267
+
268
+ **Defense: Cache key includes full URL with query string**
269
+ - Bypass: HTTP Parameter Pollution — some parsers take the first occurrence, caches key on full string; inject `?legit=1&param=evil` and cache stores it under `?legit=1&param=evil` but victim visits `?legit=1`
270
+ - Bypass: Fat GET request — send body parameters that the backend processes but the cache ignores
271
+
272
+ **Defense: Short TTL / rapid cache purging**
273
+ - Bypass: Automate re-poisoning; send the poison request in a loop just ahead of TTL expiry
274
+ - Bypass: Target CDN nodes with longer default TTLs by routing requests through specific PoPs
275
+
276
+ **Defense: `Cache-Control: private` on sensitive endpoints**
277
+ - Bypass: Check if CDN respects this header (some CDNs ignore it if an admin has overridden cache rules globally)
278
+ - Bypass: Find adjacent cacheable endpoints that reflect the same sensitive data
279
+
280
+ ---
281
+
282
+ ## Gate 0 Validation
283
+
284
+ 1. **What can the attacker DO right now?**
285
+ The attacker must be able to poison a cache entry and then demonstrate that a *separate, unauthenticated request* from a different client/IP receives the poisoned response — not just their own browser. If only the attacker sees the effect, it's not cache poisoning.
286
+
287
+ 2. **What does the victim LOSE?**
288
+ Must be one of: (a) session/account compromise via reflected credentials in poisoned response, (b) execution of attacker-controlled JS via poisoned asset, (c) service denial where legitimate requests return error responses, or (d) sensitive data disclosure (account details cached and served to other users). "Weird response headers" alone is not impact.
289
+
290
+ 3. **Can it be reproduced in 10 minutes from scratch?**
291
+ You must be able to: send the poisoning request → wait for cache store → fetch the URL from incognito/different IP → observe poisoned response. If you can't demonstrate this clean reproduction with a second client, the cache may not actually be storing the poison and the report isn't ready.
292
+
293
+ ---
294
+
295
+ ## Real Impact Examples
296
+
297
+ **Scenario 1 — Mass DoS on CDN Asset Delivery (Shopify CDN)**
298
+ An attacker identified that CDN-served JavaScript assets on `cdn.shopify.com` could be poisoned by sending a request with a crafted header that caused the origin to return a 4xx error. The CDN cached this error response. Any merchant storefront loading that asset then received the cached error instead of the valid JS file — breaking checkout flows and storefront functionality across all stores sharing that CDN path. One HTTP request, global merchant impact, persisting until cache TTL expired.
299
+
300
+ **Scenario 2 — Account Takeover via Web Cache Deception**
301
+ On a platform serving authenticated account pages, an attacker crafted a URL like `/account/profile/photo.jpg` and sent it to a victim (via phishing link). When the victim (authenticated) visited the URL, the server responded with their full account profile page (name, email, session tokens). Because the URL ended in `.jpg`, the CDN cached the authenticated response publicly. The attacker then fetched `/account/profile/photo.jpg` without authentication and received the victim's account data — enabling full account takeover. Impact was amplified because the cache served the same response to any subsequent requester.
302
+
303
+ **Scenario 3 — Affiliate Link Hijacking via URL Path Manipulation (Shopify Linkpop)**
304
+ An attacker discovered that the Linkpop affiliate link service would cache responses based on URL path but reflected a manipulated product destination URL in the cached HTML. By visiting a specially crafted path before legitimate users, the attacker poisoned the cache to redirect affiliate clicks to an attacker-controlled domain instead of the legitimate Amazon product. Victims clicking what appeared to be valid merchant links were sent to attacker infrastructure, enabling credential phishing and loss of affiliate commission revenue for the legitimate merchant.
305
+
306
+ ---
307
+
308
+ ## Disclosed Report Citations (2017-2024)
309
+
310
+ The following real, verified bug-bounty / coordinated-disclosure cases extend this skill. Spans the two major families: cache **poisoning** (attacker influences a cached response served to victims) and cache **deception** (attacker tricks the cache into storing a victim's private response).
311
+
312
+ 1. **Shopify — Cache poisoning via X-Forwarded-Host** ([H1 #977851](https://hackerone.com/reports/977851))
313
+ - Subclass: X-Forwarded-Host header poisoning (unkeyed input → redirect/script-src corruption)
314
+ - Payload: `GET /any-path` with `X-Forwarded-Host: attacker.com` — single request persisted attacker host in cached response across `apps.shopify.com` and localized subdomains
315
+ - Root cause: X-Forwarded-Host influenced asset/redirect URL generation but was NOT part of the cache key
316
+ - Year: 2020 — **$1,300 → escalated to $6,300** (one-shot poison, multi-host blast radius)
317
+
318
+ 2. **HackerOne — Cache poisoning DoS via X-Forwarded-Port** ([H1 #409370](https://hackerone.com/reports/409370))
319
+ - Subclass: X-Forwarded-Host / X-Forwarded-Port DoS (poisoned redirect to invalid port)
320
+ - Payload: `GET /<redirect-path>` with `X-Forwarded-Port: 1` — cached 301 redirect pointed legitimate users at port 1, breaking access
321
+ - Root cause: trusted X-Forwarded-* headers in 301 redirect generation; cache stored the bad Location
322
+ - Year: 2018 — **$2,500** (foundational H1-on-H1 case)
323
+
324
+ 3. **GitLab — Cache poisoning DoS via X-HTTP-Method-Override** ([H1 #1160407](https://hackerone.com/reports/1160407))
325
+ - Subclass: method-cloaking / GCS cache-key bleed (HEAD response stored under GET key)
326
+ - Payload: `GET /assets/webpack/*.js` with `X-HTTP-Method-Override: HEAD` — GCS backend honored the override and returned an empty body; CDN cached it as the canonical GET response
327
+ - Root cause: CDN cache not method-aware; HEAD body (empty) overwrote GET entry for cached static assets
328
+ - Year: 2021 — **$2,500** (DoS normally OOS, paid for novelty)
329
+
330
+ 4. **PayPal — Web Cache Deception (Omer Gil original)** ([Blog](https://omergil.blogspot.com/2017/02/web-cache-deception-attack.html))
331
+ - Subclass: classic WCD via `.css`/`.jpg`/etc. path appending on authenticated routes
332
+ - Payload: `GET https://www.paypal.com/myaccount/home/foo.css` — origin served full authenticated account page; CDN cached it as "static .css" for ~5 hours
333
+ - Root cause: origin routed unknown path suffixes to the parent dynamic handler; CDN cached based purely on the static-looking file extension
334
+ - Year: 2017 — **$3,000** (PortSwigger Top-10 Web Hacking Technique of 2017, #2)
335
+
336
+ 5. **Cloudflare PBB — Cache Deception Armor bypass via `.avif`** ([H1 #1391635](https://hackerone.com/reports/1391635))
337
+ - Subclass: CDN-specific allowlist bypass (Cloudflare's WCD protection feature) using an obscure image extension
338
+ - Payload: `GET https://<protected-origin>/account/me.avif` — Cloudflare's Cache Deception Armor extension list omitted `.avif`, so the authenticated HTML response was cached
339
+ - Root cause: Cache Deception Armor used a static, incomplete extension allowlist that did not cover modern image MIME types
340
+ - Year: 2022 — Cloudflare PBB bounty (amount undisclosed)
341
+
342
+ 6. **Akamai (PayPal/Airbnb/Goldman Sachs) — Hop-by-hop header smuggling → server-side edge poisoning** ([Tediosi & Mariani writeup](https://medium.com/@jacopotediosi/worldwide-server-side-cache-poisoning-on-all-akamai-edge-nodes-50k-bounty-earned-f97d80f3922b))
343
+ - Subclass: CDN-specific request-smuggling that lands attacker responses in Akamai's edge cache for nearby IPs
344
+ - Payload: `Connection: Content-Length` + crafted request — Akamai's first proxy stripped Content-Length as hop-by-hop, second proxy treated body as a second request whose response was cached at the edge
345
+ - Root cause: inconsistent handling of hop-by-hop headers across Akamai proxy tiers caused desync; smuggled responses were server-side cached globally
346
+ - Year: 2022 — **>$50K total** across affected programs (PayPal $25,200 + Airbnb $14,875 + Goldman Sachs $100), PortSwigger Top-10 Web Hacking Techniques 2022 nominee
347
+
348
+ 7. **James Kettle (PortSwigger) — "Gotta cache 'em all": path-normalization & WCD against Cloudflare/Fastly/GCP** ([PortSwigger Research](https://portswigger.net/research/gotta-cache-em-all))
349
+ - Subclass: cache-key path normalization discrepancies and Web Cache Deception across major CDNs (Cloudflare, Fastly, GCP/Google Cloud) — the 2024 research named in this skill's description
350
+ - Payload: origin-vs-cache delimiter/normalization disagreements (e.g. encoded path segments and static-suffix tricks) that cause the cache to store a dynamic/authenticated response under a static-looking key
351
+ - Root cause: cache and origin disagree on how to normalize/parse the URL path, so the cache key does not match the resource the origin actually served
352
+ - Year: 2024 — coordinated CDN-vendor disclosure; methodology research (no single bounty), PortSwigger Top-10 Web Hacking Techniques 2024 entry
353
+
354
+ ---
355
+
356
+ ## Related Skills & Chains
357
+
358
+ - **`hunt-xss`** — Cache poisoning is the multiplier that turns reflected XSS (low-severity self-inflicted) into stored XSS across every CDN-edge visitor. Chain primitive: `X-Forwarded-Host: attacker.com` poisons cached script src → cached response now contains `<script src="//attacker.com/x.js">` → every visitor to that CDN edge executes attacker JS, persistent for the full Cache-Control max-age.
359
+ - **`hunt-http-smuggling`** — Smuggling bypasses front-end cache-key normalization and WAF stripping of poison headers, hitting the cache server directly. Chain primitive: CL.TE smuggle delivers `X-Forwarded-Host: attacker.com` to the cache backend past the WAF that stripped it at the edge → poisoned entry stored under the victim's normal URL → de-sync poisoning where the smuggled request becomes the cached response for the next victim.
360
+ - **`hunt-auth-bypass`** — Web Cache Deception turns authenticated pages into publicly-cached responses, leaking session-bound content to unauthenticated attackers. Chain primitive: `/account/profile.css` served as authenticated HTML, cached as static asset → attacker fetches same URL without auth and reads victim's email/tokens → session cookies in body → full ATO.
361
+ - **`security-arsenal`** — Reach for the unkeyed-header wordlist (`X-Forwarded-Host`, `X-Host`, `X-Forwarded-Server`, `X-HTTP-Host-Override`, `Forwarded`, `X-Original-URL`) and the WCD path-extension list (`.css`, `.js`, `.jpg`, `.ico`, `;.css`, `%2e%2ecss`) before hand-fuzzing.
362
+ - **`triage-validation`** — Run the Pre-Severity Gate before claiming Critical: the poisoned response MUST be reproducible from a separate IP/incognito without your poison headers. If only your own browser sees the effect, it's a self-cache and N/A.
363
+
364
+ ## When to Use
365
+
366
+ - 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.
367
+ - You need the recon, exploitation, or validation workflow described below — executed strictly inside the approved scope.
368
+
369
+ ## Limitations
370
+
371
+ - Authorized scope only: the confirmation gate above is mandatory before any probing, exploitation, or credential-access command.
372
+ - Docs-only import: upstream helper scripts, commands, engine, and research assets are not bundled; reinstall tooling from the source repo when needed.
373
+ - Validate every finding (see `triage-validation`) before reporting; report via `report-writing`. Prefer a sandbox, disposable VM, or controlled lab.
374
+
375
+ ### Example
376
+
377
+ ```bash
378
+ # Read-only first step; confirm scope before anything active.
379
+ cat scope.txt # target list from the authorized engagement brief
380
+ ```
381
+
382
+ > 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.
@@ -0,0 +1,136 @@
1
+ ---
2
+ name: hunt-captcha-bypass
3
+ description: Hunt CAPTCHA Bypass
4
+ category: security
5
+ risk: offensive
6
+ source: https://github.com/elementalsouls/Claude-BugHunter
7
+ source_repo: elementalsouls/Claude-BugHunter
8
+ source_type: community
9
+ date_added: '2026-09-20'
10
+ license: MIT
11
+ license_source: https://github.com/elementalsouls/Claude-BugHunter/blob/main/LICENSE
12
+ compatibility: Requires explicit written authorization for a target scope plus the
13
+ relevant testing tools for this technique. Docs-only; helper scripts and commands
14
+ not bundled.
15
+ sources: public_research, operator_experience
16
+ report_count: 6
17
+ ---
18
+ > **⚠️ AUTHORIZED USE ONLY**
19
+ > This skill is for educational purposes or authorized security assessments only.
20
+ > You must have explicit, written permission from the system owner before using this tool.
21
+ > Misuse of this tool is illegal and strictly prohibited.
22
+
23
+ > **Mandatory confirmation gate**
24
+ > Before running any command that probes, exploits, changes, persists on, extracts data from, or attempts credential access against a target:
25
+ > 1. Ask the user to state the exact target URL, IP, account, or resource.
26
+ > 2. Ask the user to confirm written authorization and the permitted scope.
27
+ > 3. Show the exact command(s) and explain their expected effect.
28
+ > 4. Wait for explicit confirmation in the current conversation.
29
+ >
30
+ > Without that confirmation, remain read-only and provide defensive guidance only. Prefer a sandbox, disposable VM, or controlled lab.
31
+
32
+ ## Autonomous Testing Priority
33
+
34
+ **The fastest test: just omit the CAPTCHA field entirely. Most CAPTCHA bypass bugs are client-side-only validation.**
35
+
36
+ **Pattern 1 — Omit the CAPTCHA field (most common, most automatable):**
37
+ 1. GET the form/endpoint that shows a CAPTCHA to understand its field name (usually `g-recaptcha-response`, `captcha`, `captcha_token`, `captcha_answer`, `h-captcha-response`)
38
+ 2. POST the form with ALL fields EXCEPT the CAPTCHA field
39
+ 3. If the action succeeds (200, redirect, or "success" message) → no server-side CAPTCHA validation
40
+ 4. Proof: the state-changing action completes without a valid CAPTCHA field (compare against a baseline request that includes it)
41
+
42
+ **Pattern 2 — Empty or null CAPTCHA value:**
43
+ Instead of omitting the field entirely, include it with an empty string, `null`, `0`, or `undefined`:
44
+ ```
45
+ captcha=&email=test@example.com&password=test123
46
+ ```
47
+ Some apps validate field presence but not content.
48
+
49
+ **Pattern 3 — Replay a previously solved CAPTCHA token:**
50
+ 1. Complete one legitimate CAPTCHA challenge and capture the `g-recaptcha-response` token
51
+ 2. Submit a second request immediately with the SAME token value
52
+ 3. If the second submission also succeeds → token is not single-use (replay attack)
53
+ 4. A replayed token can be shared across automated requests
54
+
55
+ **Pattern 4 — Test without CAPTCHA on similar endpoints:**
56
+ Some apps add CAPTCHA to the registration form but forget the password reset, API endpoint, or mobile API path (`/api/register` vs `/register`). Try the same action via the API path without any CAPTCHA field.
57
+
58
+ **Pattern 5 — Rate/throughput-gated "prove you're automated" challenges:**
59
+ Some apps define CAPTCHA "bypass" as simply exceeding the rate a human could plausibly sustain —
60
+ e.g. "N submissions within T seconds" — checked by a middleware that counts REQUESTS REACHING the
61
+ route, not successful outcomes. Garbage/placeholder payloads satisfy this exactly as well as valid
62
+ ones, since the counter increments regardless of whether the request's own validation passes.
63
+
64
+ **Timing note (sliding-window counters):** don't solve this one request at a time — a sequential
65
+ pace (seconds between each request) structurally cannot land N requests inside a short sliding
66
+ window, and issuing more requests serially does not fix it. A typical failing pattern is 12
67
+ requests spread across ~250 seconds when the check requires ~10 requests within 20 seconds.
68
+ Instead fire the requests **concurrently** (e.g. `"concurrency": N` on a single request call, or
69
+ any parallel-request primitive your tooling offers, with N >= the required count) so they arrive
70
+ simultaneously and satisfy the sliding window trivially. Check the endpoint's own
71
+ required-field validation first (e.g. a `rating` field that can't be null) so the concurrent
72
+ payload is at least well-formed enough to reach the counting middleware, even if other fields
73
+ (like the CAPTCHA answer itself) are wrong or reused.
74
+
75
+ **What to skip in automated testing:** Solving real reCAPTCHA/hCaptcha programmatically (OCR, audio bypass) requires external services. Only attempt if patterns 1-4 fail and the test budget allows.
76
+
77
+ **Proof:** Any successful state-changing action (account created, login succeeded, form submitted) that completed without a valid CAPTCHA token confirms the bypass.
78
+
79
+ ---
80
+
81
+ ## Vulnerability Classes in This Skill
82
+
83
+ ### 1. Client-Side-Only CAPTCHA Validation
84
+ JavaScript hides/disables the submit button until CAPTCHA is solved, but the server never checks the CAPTCHA token. Direct API calls bypass the UI gate entirely.
85
+
86
+ ### 2. CAPTCHA Not Tied to Session or Action
87
+ A token solved for login is accepted on the registration endpoint (or any other). The server validates "is this a real CAPTCHA solution?" but not "is this the right solution for THIS action?".
88
+
89
+ ### 3. Single-Use Not Enforced
90
+ CAPTCHA tokens (especially reCAPTCHA v2) are meant to be consumed after one use. If the server doesn't revoke them after verification, a single human-solved token becomes reusable for many requests.
91
+
92
+ ### 4. CAPTCHA Added Reactively (Only After N Failures)
93
+ Some apps only show CAPTCHA after 3-5 failed login attempts. Before that threshold, no CAPTCHA is required → an attacker can make N-1 attempts per account indefinitely by resetting state between attempts.
94
+
95
+ ### 5. Static or Predictable CAPTCHA
96
+ Math CAPTCHAs (`3 + 4 = ?`), simple image CAPTCHAs, or text CAPTCHAs with a finite answer set can be automated. These are custom CAPTCHA implementations, not Google/hCaptcha.
97
+
98
+ ---
99
+
100
+ ## Impact Chain
101
+
102
+ CAPTCHA bypass alone: **Medium** (enables automation of rate-limited actions)
103
+
104
+ CAPTCHA bypass + login endpoint = **brute force gate removed** → chain with `hunt-brute-force` → High/Critical
105
+
106
+ CAPTCHA bypass + registration endpoint = **account farming** → abuse, spam, resource exhaustion
107
+
108
+ CAPTCHA bypass + password reset = **token flooding** → chain with `hunt-forgot-password`
109
+
110
+ ---
111
+
112
+ ## Related Skills
113
+
114
+ - **`hunt-brute-force`** — CAPTCHA is often the only rate-limit gate; bypass unlocks brute force
115
+ - **`hunt-forgot-password`** — reset endpoints sometimes protected by CAPTCHA only
116
+ - **`hunt-race-condition`** — race the CAPTCHA validation window (submit before the token is revoked)
117
+
118
+ ## When to Use
119
+
120
+ - 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.
121
+ - You need the recon, exploitation, or validation workflow described below — executed strictly inside the approved scope.
122
+
123
+ ## Limitations
124
+
125
+ - Authorized scope only: the confirmation gate above is mandatory before any probing, exploitation, or credential-access command.
126
+ - Docs-only import: upstream helper scripts, commands, engine, and research assets are not bundled; reinstall tooling from the source repo when needed.
127
+ - Validate every finding (see `triage-validation`) before reporting; report via `report-writing`. Prefer a sandbox, disposable VM, or controlled lab.
128
+
129
+ ### Example
130
+
131
+ ```bash
132
+ # Read-only first step; confirm scope before anything active.
133
+ cat scope.txt # target list from the authorized engagement brief
134
+ ```
135
+
136
+ > 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.