web-cache-deception 是做什么的?
Web缓存欺骗与投毒剧本。当CDN、反向代理或应用程序缓存可能因路径混淆或缓存键操纵而向其他用户提供敏感认证内容时使用。
概述
此技能旨在帮助安全专业人员识别和利用Web缓存机制中的漏洞,特别是缓存欺骗和投毒攻击。它提供了从侦察到利用的逐步指导,包括用于测试和验证的实用命令。
适用场景
- CDN缓存:如Cloudflare、Akamai、Fastly等,可能缓存动态内容。
- 反向代理:如Nginx、Apache HTTP Server,可能因路径处理不当而错误缓存页面。
- 应用缓存:如Redis、Memcached,可能缓存敏感API响应。
工作原理
Web缓存欺骗攻击利用缓存键和请求路径的差异。例如,通过向请求附加一个无害的静态资源扩展名(如.css),攻击者可能诱使缓存服务器将认证的HTML页面视为可缓存资源,并将之公开提供。
侦察阶段
- 识别目标URL:
curl -I https://example.com/private/profile - 检查缓存头:查找
X-Cache、Cache-Control、Age等头信息。 - 测试路径混淆:
curl -I https://example.com/private/profile/test.css
利用阶段
- 操纵缓存键:尝试添加静态资源扩展名,观察缓存行为。
curl -I https://example.com/private/profile/.css - 验证缓存共享:以非认证用户身份访问同一URL,若获得认证内容,则成功。
curl https://example.com/private/profile/test.css
高级技术
- 双点后缀:使用
file..css等模式绕过某些过滤器。 - 路径分隔符混淆:使用
/或%23等字符。 - 缓存头操纵:通过设置自定义头(如
X-Forwarded-Host)来影响缓存键。
注意事项
- 仅在获得授权的情况下进行测试。
- 记录所有发现以备报告。
- 了解目标使用的缓存系统及其特定规则。
参考资源
- OWASP Web Cache Deception Attack
- PortSwigger 相关教程
- 各缓存平台文档