用途:审计位于 CDN 或反向代理缓存(Varnish、Nginx、Cloudflare、Fastly、Akamai 等)之后的 Web 应用,检测 Web 缓存投毒与 Web 缓存欺骗漏洞。
主要能力:识别缓存行为(Age、X-Cache、CF-Cache-Status、Via 等响应头);枚举未键控请求头,如 X-Forwarded-Host、X-Original-URL、X-Rewrite-URL、X-Host、X-Forwarded-Server、X-HTTP-Host-Override;测试基于请求头的缓存投毒并验证载荷是否持久;测试参数隐藏(fat GET 请求、分号分隔符差异);测试 Web 缓存欺骗,检查认证页面是否被缓存并返回给未认证用户。
使用方式:需安装 curl,具备目标应用的 HTTP/HTTPS 访问权限,以及用于验证载荷注入的受控域名或 Burp Collaborator URL。输入变量包括 TARGET_URL、ATTACKER_DOMAIN、AUTH_COOKIE。工作流分六步:检测缓存行为、枚举未键控请求头、验证基于请求头的缓存投毒、测试参数隐藏、测试 Web 缓存欺骗、验证载荷持久性并记录影响。每次测试使用唯一 cache-buster 查询参数避免污染结果。
适用场景:审计使用 CDN 或反向代理缓存的 Web 应用;排查未键控请求头注入;调查参数隐藏;检查认证页面是否可被诱骗缓存。
限制与注意事项:测试前必须获得书面授权,缓存投毒会影响共享同一缓存的所有用户。若未观察到缓存头,可能无缓存层或已强制 no-store;投毒未持久可能因 TTL 过短或按 IP 缓存;缓存欺骗返回 404 时可尝试路径遍历变体;遇 429 限流可增加请求间隔或使用代理。Cloudflare 默认按文件扩展名缓存,向认证路径追加 .css 或 .js 是可靠的欺骗向量。自动化扫描可考虑通过 Burp Suite 使用 web-cache-vulnerability-scanner。