浏览器 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
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
浏览器驱动的不同步(即客户端请求走私)利用受害者的浏览器在共享连接上排队一个格式错误的请求,以便后续请求被下游组件解析为不同步。与经典的前端↔后端走私不同,有效负载受到浏览器合法发送跨域请求的限制。
关键约束和提示
- 仅使用浏览器可以通过导航、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
参考
- https://portswigger.net/research/browser-powered-desync-attacks
- https://portswigger.net/web-security/request-smuggling/browser/client-side-desync
- 区分管道化与走私(关于重用误报的背景):https://portswigger.net/research/how-to-distinguish-http-pipelining-from-request-smuggling
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
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。