Web 缓存欺骗总结

Web 缓存欺骗总结

Web 缓存欺骗 (WCD) 是一种攻击,在这种攻击中,攻击者欺骗缓存代理,使其不正确地存储通过 Internet 发送的私人信息并获得对该缓存数据的未授权访问。它是由安全研究员 Omer Gil 在 2017 年提出的。

Web 缓存欺骗攻击是如何工作的?

当浏览器向网站发出请求时,连接通常会通过 CDN(内容分发网络)。CDN 是代理服务器及其数据中心的地理分布式网络,它缓存 Web 内容的本地副本,通过减少网络延迟来为用户提供更快的访问,从而减少 Web 服务器的负载。缓存服务器没有安全措施来验证用户和阻止信息,它只存储非用户特定的静态或公共内容。所有特定于用户的动态内容都被路由到网站的主要服务器或用户与之交互的服务。Web 缓存欺骗 (WCD) 攻击通过路径混淆攻击技术起作用。它操纵缓存服务器强制存储的 URL 路径,并将敏感数据显示为公共内容。

Web 缓存欺骗攻击的后果可能是毁灭性的,但执行起来非常简单:

  1. 攻击者诱骗受害者打开包含有效负载的有效应用程序服务器上的链接。
  2. 攻击者使用相同的链接在服务器上打开新缓存的页面,以查看与受害者完全相同的页面。

这种攻击只有在攻击者可用的易受攻击的资源返回敏感数据时才有意义。

攻击取决于使应用程序易受攻击的一组非常具体的情况:1. 应用程序仅读取 URL 的第一部分以确定要返回的资源。如果受害人请求:

https://www.example.com/my_profile

该应用程序返回受害者个人资料页面。应用程序仅使用 URL 的第一部分来确定应返回配置文件页面。如果应用程序收到请求

https://www.example.com/my_profile_test

它仍然会返回受害者的个人资料页面,而忽略添加的文本。这同样适用于其他网址,例如

https://www.example.com/my_profile/test
  1. 应用程序堆栈根据文件扩展名缓存资源,而不是缓存标头值。如果应用程序堆栈已配置为缓存图像文件。它将缓存所有带有.jpg .png or 或.gif extensions. 扩展名的资源。这意味着例如图像文件
https://www.example.com/images/dog.jpg

将在第一次请求图像时从应用程序服务器检索。对图像的所有后续请求都从缓存中检索,并使用最初缓存的相同资源进行响应(只要设置了缓存超时)。

Attack手动攻击方法

第 1 步:攻击者诱使受害者打开恶意制作的链接:

https://www.example.com/my_profile/test.jpg

  • 应用程序忽略 URL 的“test.jpg”部分,加载受害者个人资料页面。
  • 缓存机制将资源标识为图像,并对其进行缓存。

第二步:攻击者对缓存页面发送GET请求:

https://www.example.com/my_profile/test.jpg

  • 缓存的资源,实际上是受害者的个人资料页面,被返回给攻击者(以及任何其他请求它的人)。

工具扫描(Web Cache Deception Burp Extension)

https://github.com/portswigger/web-cache-deception-scanner

Installation安装

  • 下载 WebCacheDeceptionScanner.jar 文件。
  • 在 Burp Suite 中打开 Extender 选项卡。在扩展选项卡中,单击添加按钮。
  • 选择下载的 jar 文件 -> 下一步。
  • 检查安装是否有错误消息。
  • 或者直接在burp的Bappstore中搜索安装。

reference:https://github.com/0xmaximus/Galaxy-Bugbounty-Checklist/tree/main/Web Cache Deception

https://github.com/portswigger/web-cache-deception-scanner

posted @ 2023-02-28 10:07  Ca1m  阅读(201)  评论(0编辑  收藏  举报