首页/安全/渗透测试与安全评估速查/HTTP 请求走私检测思路
常见漏洞验证121 条

HTTP 请求走私检测思路

前后端 HTTP 解析差异可导致请求边界错位;检测属于高风险项:只在授权窗口用无害样本验证,观察超时与串包现象。

请求走私是什么

当链路中同时存在前端代理与后端服务,而两者对请求边界的解析规则不同(主要是 Content-Length 与 Transfer-Encoding 的处理差异),一个请求的尾部可能被后端当作下一个请求的开头,形成请求走私(HTTP Request Smuggling)。它的危害不是单点越权,而是影响同一条连接上的其他用户请求,因此验证必须极其克制。

基本信息

前提条件前端代理与后端对 CL/TE 头解析不一致
常见形态CL.TE、TE.CL、TE.TE(重复头与混淆头)
参考标准RFC 9112(HTTP/1.1 消息语义)
观察信号请求超时、响应错配、队列变慢、后续请求被串包

典型使用场景

  • 使用自研或老旧反向代理的架构中核查解析一致性
  • 出现不明原因超时与响应错配时的根因排查
  • 评估统一网关升级后是否已修复历史问题
  • RFC 9112 发布后的合规性复核
  • 与客户约定的专项窗口内做受控验证

验证原则

验证原则
1. 与客户确认专测窗口、影响范围与回滚联系人,说明可能影响其他用户请求
2. 优先使用工具内置的检测用例做无害样本(如 Burp 的相关检测功能)
3. 出现超时、错配或队列变慢立即停止,等待连接恢复正常再判断
4. 全程记录时间线与影响面(是否影响到非测试账号的请求)
5. 结论优先给出架构与配置层面的分析,动态验证结果仅作辅证

风险与防护对照

风险形态说明加固方向
CL/TE 解析差异前后端取不同长度字段统一使用 RFC 9112 严格解析
重复头混淆同时出现两个 TE 头拒绝含歧义头的请求
连接复用污染走私内容影响后续请求按请求隔离或关闭有问题的连接复用
代理版本缺陷老旧代理实现不严谨升级代理并回归验证
请求走私验证可能波及同一连接上的其他用户请求:生产环境测试必须限时、限量、有人值守,出现异常立即停止并通知客户。
前端代理与后端服务升级后要复测历史结论:解析行为随版本变化,旧结论不能用来说明当前状态。

易错点

  • 对高流量生产入口做批量探测,把异常传播给真实用户
  • 前后端版本升级后未复测旧结论,报告中的风险状态已经过期
  • 在测试中标出现象就停止记录,缺少时间线与影响面证据,结论难以被采信
  • 把架构层面的分析完全依赖动态验证,验证条件不满足时给不出结论
  • 未与客户确认影响范围,出现串包后无法快速界定受影响请求

数据来源与参考

  • PortSwigger Academy(HTTP Request Smuggling)
  • RFC 9112(HTTP/1.1 消息语义)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌