用于测试应用程序是否易受 Web 缓存欺骗攻击的 Burp 扩展。
加载扩展后,可在 Target - Sitemap 选项卡中访问,然后右键单击要测试的资源。将显示一个上下文相关菜单项“Web Cache Deception Test”,可用于进行测试。如果资源存在漏洞,则会创建一条详细说明漏洞的 Issue。
该上下文相关菜单项也适用于 Proxy - Http History 选项卡中的请求。
2017 年 2 月,安全研究员 Omer Gil 揭示了一种名为“Web Cache Deception”(Web 缓存欺骗)的新型攻击向量(https://omergil.blogspot.co.il/2017/02/web-cache-deception-attack.html)。
Web 缓存欺骗攻击可能造成灾难性后果,但实施起来非常简单:
** 当然,只有当攻击者可访问的有漏洞资源返回敏感数据时,这种攻击才有意义。
攻击依赖于非常特定的条件组合才能使应用程序易受攻击:
1. 应用程序仅读取 URL 的第一部分以确定要返回的资源。
如果受害者请求:
https://www.example.com/my_profile
应用程序返回受害者资料页面。应用程序仅使用 URL 的第一部分来确定应返回资料页面。如果应用程序收到对
https://www.example.com/my_profile_test
的请求,它仍会返回受害者的资料页面,忽略附加文本。同样的规则适用于其他 URL,例如
https://www.example.com/my_profile/test
2. 应用程序堆栈根据文件扩展名缓存资源,而不是根据缓存标头值。
如果应用程序堆栈已配置为缓存图像文件,它将缓存所有具有 .jpg、.png 或 .gif 扩展名的资源。这意味着,例如,位于
https://www.example.com/images/dog.jpg
的图像在首次请求时会从应用服务器获取。后续对该图像的所有请求都从缓存中获取,返回最初缓存的相同资源(只要缓存超时时间已设置)。
这些前提条件可以通过以下方式用于 Web 缓存欺骗攻击:
https://www.example.com/my_profile/test.jpg
https://www.example.com/my_profile/test.jpg
令人震惊 就这么简单?