https://deepstrike.io/blog/what-is-http-request-smuggling
总结
网页主要介绍了 HTTP 请求走私的概念、工作原理、风险、检测、预防和缓解策略,并详细说明了不同类型的请求走私攻击以及攻击者如何利用这些攻击。
摘要
HTTP 请求走私是一种 Web 攻击,它利用了前端和后端服务器对 HTTP 请求长度解释不一致的差异。文章首先介绍了前端服务器的概念,包括负载均衡器、反向代理服务器、内容分发网络 (CDN) 和 Web 应用程序防火墙 (WAF) 等关键组件。接着详细解释了 HTTP/1.1 中处理请求长度的两种方式:Content-Length
标头和 Transfer-Encoding
标头。文章指出,这两个标头的误用可能导致 HTTP 请求走私。
HTTP 请求走私的类型包括 CL.TE、TE.CL、TE.TE 和 CL.0/TE.0,每种类型都代表了前端和后端服务器处理请求长度的不同方式。攻击者通过在单个 HTTP 请求中添加这两种标头,导致前端和后端服务器之间的不同步,从而实现攻击。
攻击者可以通过请求走私攻击实现多种利用方式,包括打开重定向、绕过前端控制、升级自身/反射型 XSS、窃取用户请求和响应队列中毒。这些攻击可能导致未经授权的访问、请求中毒,甚至服务器端请求伪造。
最后,文章提供了一些缓解请求走私攻击的建议,包括规范化传入请求、阻止模糊标头和使用单一 HTTP 解析标准,以确保基础设施的安全性。
观点
- HTTP 请求走私是一种利用前端和后端服务器对 HTTP 请求长度解释不一致的攻击方式。
- 前端服务器的关键组件,如负载均衡器、反向代理服务器、CDN 和 WAF,在保护 Web 应用程序免受攻击时发挥着重要作用。
Content-Length
和 Transfer-Encoding
标头的不当使用是导致 HTTP 请求走私的主要原因。
- HTTP 请求走私的类型(如 CL.TE、TE.CL、TE.TE 和 CL.0/TE.0)反映了不同的服务器解析策略和潜在的攻击向量。
- 请求走私攻击可以被用于打开重定向、绕过前端控制、升级 XSS 攻击、窃取用户请求和响应队列中毒等多种方式。
- 为了缓解请求走私攻击,需要采取一致的 HTTP 解析标准,并对传入请求进行规范化处理,以及阻止含有模糊标头的请求。