CyberGlossary

漏洞

缓存投毒

别称: Web 缓存投毒, 响应投毒

定义

将恶意响应保存在共享缓存中,使后续用户收到由攻击者控制内容的攻击。

缓存投毒利用 CDN、反向代理、浏览器或 DNS 解析器等缓存层,使其持久化攻击者控制的内容。Web 缓存投毒通常滥用未参与缓存键计算的输入(unkeyed input):某个头部或参数影响了响应但未纳入缓存键,从而把被投毒的响应分发给后续访问者。变种包括 DNS 缓存投毒、应用层缓存投毒以及缓存欺骗。影响范围从篡改与 XSS 分发到凭据窃取与身份验证绕过。防御措施包括将相关输入纳入缓存键、在边缘对请求做归一化、限制可缓存的内容类型,并审计 Vary 与 Cache-Control 头。

示例

  • 通过发送 X-Forwarded-Host 让应用将其反射到 <script> 标签,从而污染 CDN。
  • 缓存带有攻击者控制的 Location 字段的 302 跳转,并发给所有访客。

相关术语