Agent Skills
返回列表
🔒

HTTP 请求走私实战手册

IT 运维与安全 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/request-smuggling-gpev。

技能介绍

要解决的具体问题

当 CDN、反向代理和源站对 HTTP 请求边界理解不一致时,单个请求可能在链路中被拆成多个请求,或被后续请求“吞掉”部分内容。典型表现包括异常请求合并、缓存键错位、跨用户请求串扰,以及 HTTP/2 到 HTTP/1.1 降级时出现难以复现的路径或头字段异常。这类问题不是简单的 Header Injection,而是不同 hop 之间对 Content-Length、Transfer-Encoding、伪头和消息体边界的 message boundary disagreement。

技能如何工作

该技能把请求走私拆成可排查的边界问题,而不是泛化到通用注入流程:

  • CL.TE / TE.CL / TE.TE:分析前端和后端对长度头、chunked 编码及 Transfer-Encoding 变体的解析差异。
  • HTTP/2 downgrade:关注 :method、:path、重复头、大小写归一化以及 Connection 类头在 H1 重建过程中的处理。
  • Client-side desync:结合浏览器 Fetch、no-cors、CORS、连接复用等因素,判断异常是否来自请求队列或响应队列错位。
  • 工具辅助验证:资料提到 Burp Suite — HTTP Request Smuggler、defparam/smuggler、simple-http-smuggler-generator 等工具,用于生成探测请求、检查时间差和常见变体。
  • 检测决策树:先确认是否为 HTTP 消息边界问题,再决定是留在请求走私路径,还是转向 CRLF、Web Cache Deception、SSTI、SQLi 等相邻路由。

适用边界与注意点

该技能适合安全测试、SRE 和后端工程师在明确怀疑“前端 + 源站”两跳边界不一致时使用。它更适合做 定位、复现、日志比对和最小化探测,而不是直接在生产环境批量 fuzzing。使用时应先确认拓扑,降低并发,避免影响其他用户请求,并把验证重点放在边界解析差异、异常连接复用和缓存键错位上。

使用场景

  • 排查代理与源站对 CL.TE 或 TE.CL 边界不一致导致的请求串扰
  • 复核 HTTP/2 到 HTTP/1.1 降级时伪头映射和重复头处理是否产生新请求
  • 用最小探测请求验证浏览器 Fetch、CORS 与连接复用是否触发客户端 desync
  • 在确认消息边界问题后,把 CRLF、缓存欺骗和注入类路由分开处理

适合人员

  • 负责网关与源站安全加固的后端工程师,需要定位请求边界解析差异
  • 处理生产异常请求串的 SRE,需要判断是否由代理与源站 desync 引起
  • 执行 Web 安全测试的安全工程师,需要验证 CL.TE、TE.CL 和 HTTP/2 降级风险
  • 维护 CDN 或反向代理规则的基础设施工程师,需要排查缓存键和响应队列错位