admin 发表于 5 天前

HTTP请求走私——绕过前后端边界

HTTP请求走私——绕过前后端边界摘要:HTTP请求走私(HTTP Request Smuggling)利用前端服务器(如负载均衡器、CDN)与后端服务器对HTTP请求解析的差异,将一条恶意的模糊请求分割成两条,其中一条可绕过安全检查或影响其他用户。黑客可通过此技术污染缓存、窃取请求数据、执行XSS。本文详解CL.TE/TE.CL两种走私形式,并提供使用HTTP/2、统一服务器配置的防御。关键词:黑客网站攻击;HTTP请求走私;渗透测试;缓存投毒;请求解析差异一、引言现代网站常在前端使用反向代理或CDN,再将请求转发给后端应用。如果前端和后端对Content-Length和Transfer-Encoding头的处理不一致,黑客可以构造一个请求,使得前端认为是一个请求,后端却解析出两个请求。走私的第二个请求可能直接访问被保护的接口,或盗窃其他用户请求中的敏感信息。二、HTTP请求走私类型2.1 CL.TE(前端CL,后端TE)前端使用Content-Length,后端使用Transfer-Encoding: chunked。黑客构造:text



POST / HTTP/1.1Host: example.comContent-Length: 51Transfer-Encoding: chunked0GET /admin HTTP/1.1Host: example.com
前端读取51字节(到第二个Host行),后端解码chunked,看到0表示结束,剩余GET /admin...被视为第二个请求。2.2 TE.CL(前端TE,后端CL)相反配置。三、渗透测试利用
[*]发现走私点后可盗取其他用户的Cookie、注入恶意响应(缓存投毒)。
[*]使用工具smuggler、Burp Suite的Request Smuggling扩展检测。
四、防御措施
[*]使用HTTP/2(很少暴露走私漏洞)。
[*]确保前后端服务器使用相同的Web服务器软件或明确统一的解析逻辑。
[*]禁用或规范化Transfer-Encoding头,只使用Content-Length。
五、总结HTTP请求走私是一种复杂但危害巨大的黑客网站攻击手段,防御需要架构一致性和协议规范。
页: [1]
查看完整版本: HTTP请求走私——绕过前后端边界