HTTP 请求走私
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/request-smuggling-sh-qe74ze。
技能介绍
要解决的问题
当请求链路上存在多个 HTTP 解析器(反向代理、负载均衡、网关、CDN)时,攻击者可以构造畸形的 Content-Length 与 Transfer-Encoding 头组合,让不同解析器对「这条请求到哪里结束、下一条从哪里开始」给出不同答案。这就是 HTTP 请求走私(Request Smuggling),也叫 proxy desync。
后果很具体:紧跟其后的请求可能被当作别人的会话处理(凭证劫持),恶意响应可能被写进共享缓存(缓存投毒),或者直接绕过 WAF —— 因为 WAF 看到的请求边界和后端服务器看到的并不一样。
request-smuggling 就是为这类验证场景准备的:当你需要测试自己的反向代理 / 负载均衡配置时,它提供一套可以照着逐步执行的检查清单。
技能如何工作
技能的核心是一份有序的方法论清单。激活后它会:
- 按顺序加载并应用完整方法,除非你指定跳过某一步
- 针对每种技术,先判断它与当前目标和上下文的匹配程度
- 逐项记录清单的完成状态,最后基于发现给出下一步建议
覆盖的技术面包括:
- 走私变体:
CL.TE、TE.CL、TE.TE,以及TE.TE下通过混淆头部来绕过过滤器的做法 - 检测手段:利用计时差异(timing)与差异化响应(differential responses)判断前后端是否对边界理解不一致
- 衍生影响验证:缓存投毒、凭证劫持
- WAF 绕过:借助解析器边界差异让安全设备漏检真实请求
- HTTP/2 走私:HTTP/2 环境下的走私路径
适用边界
- 该技能面向测试你自己的基础设施,不是通用攻击教程。请只在获得授权的系统上使用。
- 它假设你能观察到前后端响应的差异(计时、状态码、响应体)。如果链路上不存在可观测的差异化信号,检测结果会偏弱。
- 清单按顺序执行效果最好,随意跳步可能破坏后续步骤的前置条件。
- HTTP/2 部分的走私手法与 HTTP/1.1 行为不同,需要分开处理。
使用场景
- 为新上线的反向代理网关编写安全验收清单,逐项验证 CL.TE、TE.CL 走私是否成立并记录结果
- 排查线上疑似由前端与后端解析差异引起的异常会话,借助计时与差异化响应定位走私点
- 在 WAF 上线前验证过滤器是否会被 TE.TE 混淆头部绕过,确认其检测边界与后端一致
- 测试走私请求之后共享缓存是否被写入恶意响应,评估缓存投毒与凭证劫持风险
适合人员
- 负责生产环境反向代理与负载均衡配置的安全工程师,需要在上线前系统验证多解析器的边界行为
- 维护 WAF 与共享缓存架构的 Web 防护工程师,需要确认检测设备与后端服务器对请求边界的理解一致
- 执行渗透测试或红队评估的安全测试人员,需要在授权范围内按清单验证走私手法及其衍生影响
- 管理高流量入口网关的后端基础设施工程师,需要在配置变更后回归验证走私防护是否仍然有效