Entry № 554
HTTP 响应拆分
HTTP 响应拆分 是什么?
HTTP 响应拆分用户输入中未受信任的 CR/LF 字符迫使服务器发出额外的、由攻击者控制的 HTTP 响应的注入漏洞。
HTTP 响应拆分(CRLF 注入)出现于应用把用户输入回显到响应头(典型如 Location、Set-Cookie 或自定义头)而未过滤回车与换行字节时。攻击者注入 %0d%0a 终止原始头块,并插入头部、状态行甚至完整的第二个响应。后果包括缓存投毒、跨站脚本、会话固定以及向中间设施泄露凭据。CWE-113 与 CVE-2004-0500 等经典披露展示了其影响。缓解措施:拒绝或转义头值中的 CR/LF,使用禁止在头部 API 中注入换行的框架,优先使用对输入进行 URL 编码的重定向辅助函数。
● 示例
- 01
用包含 %0d%0a 的用户参数设置 Location 头,从而注入 Set-Cookie。
- 02
通过拆分响应使缓存为 /home 存储攻击者控制的响应体。
● 常见问题
HTTP 响应拆分 是什么?
用户输入中未受信任的 CR/LF 字符迫使服务器发出额外的、由攻击者控制的 HTTP 响应的注入漏洞。 它属于网络安全的 漏洞 分类。
HTTP 响应拆分 是什么意思?
用户输入中未受信任的 CR/LF 字符迫使服务器发出额外的、由攻击者控制的 HTTP 响应的注入漏洞。
如何防御 HTTP 响应拆分?
针对 HTTP 响应拆分 的防御通常结合技术控制与运营实践,详见上方完整定义。
HTTP 响应拆分 还有哪些其他名称?
常见的别称包括: HTTP CRLF 注入, HTTP 头注入。