HTTP 请求走私实战手册
将以下提示词粘贴到你的 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 或反向代理规则的基础设施工程师,需要排查缓存键和响应队列错位