浏览器 HTTP 请求走私

Reading time: 4 minutes

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks

浏览器驱动的不同步(即客户端请求走私)利用受害者的浏览器在共享连接上排队一个格式错误的请求,以便后续请求被下游组件解析为不同步。与经典的前端↔后端走私不同,有效负载受到浏览器合法发送跨域请求的限制。

关键约束和提示

  • 仅使用浏览器可以通过导航、fetch 或表单提交发出的头部和语法。头部混淆(LWS 技巧、重复 TE、无效 CL)通常不会发送。
  • 目标端点和中介,反映输入或缓存响应。有效影响包括缓存中毒、泄露前端注入的头部,或绕过前端路径/方法控制。
  • 重用很重要:调整构造的请求,使其与高价值受害者请求共享相同的 HTTP/1.1 或 H2 连接。连接锁定/有状态行为会放大影响。
  • 优先选择不需要自定义头部的原语:路径混淆、查询字符串注入,以及通过表单编码的 POST 进行主体塑形。
  • 通过重新测试而不重用,或使用 HTTP/2 嵌套响应检查,验证真正的服务器端不同步与单纯的管道化伪影。

有关端到端技术和 PoC,请参见:

  • PortSwigger Research – 浏览器驱动的不同步攻击: https://portswigger.net/research/browser-powered-desync-attacks
  • PortSwigger Academy – 客户端不同步: https://portswigger.net/web-security/request-smuggling/browser/client-side-desync

参考

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks