首页 > 其他分享 >Web 缓存欺骗总结

Web 缓存欺骗总结

时间:2023-02-28 10:25:50浏览次数:63  
标签:Web 缓存 应用程序 https 攻击者 欺骗 com

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

标签:Web,缓存,应用程序,https,攻击者,欺骗,com
From: https://www.cnblogs.com/ly584521/p/17162986.html

相关文章

  • 什么是Redis缓存穿透、缓存雪崩、缓存击穿
    缓存穿透缓存穿透,是指查询一个数据库一定不存在的数据。正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,再对数据库进行查询,并把查询到的对象......
  • Mybatis缓存机制
    1、什么是缓存(Cache)?存在内存中的临时数据将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,......
  • 使用MetaWeblog api自动上传文章图片到cnblog
    由于我日常习惯用Typora来写笔记和博客,文章中的图片保存在本地,在发布文章到cnblog之前,希望能有一个自动化工具可以自动上传文章引用的图片到cnblog,获取图片链接,替换掉......
  • JavaWeb 读资源的问题-2023-2-27
    1、db.properties文件中读取username和password2、getResourceAsStream("/web-inf/classes/db.properties")3、properties.getProperty("username")publicclass......
  • Web开发的常用攻击和防御方式
    一、XSS主要利用:1.盲目相信用户提交的内容2.直接把用户的字符串转化成DOM分类:1.存储型XSS,恶意脚本存在数据库中,所有访问页面的用户都会被攻击2.反射型XSS,脚本写在URL......
  • web自动化--等待
    一、常用知识:一、强制等待time.sleep(3)二、隐式等待语法:driver.implicitly_wait(s)1、整个会话只执行一次,全局起作用,后面的每一次元素查找都会进行等待,在设置的时......
  • #跟着小白一起学鸿蒙#WebSocket的使用和流程分析
    作者:王石WebSocket是一种网络通讯协议,很多网络开发工作者都需要它。本文介绍在OpenHarmony上WebSocket协议的使用方法。WebSocket有什么不同很多人会问,有了HTTP协议,尤其......
  • 理论:第四章:Redis支持的数据类型以及使用场景,持久化,哨兵机制,缓存雪崩,缓存穿透,双删策略
    简单介绍一个redis?redis是内存中的数据结构存储系统,一个key-value类型的非关系型数据库,可持久化的数据库,相对于关系型数据库(数据主要存在硬盘中),性能高,因此我们一般用redis......
  • Caffeine - 实际案例:为什么要引入Caffeine本地缓存
    问题背景情景分析服务,老版本里会每次查询/翻页,均会重新请求一次。每次请求都会涉及到重新查询permission的工作。permission信息,是scenarioService通过grpc调用faneDataS......
  • 基于SpringBoot WebMagic爬虫爬取大乐透双色球
    大乐透网页地址:https://kjh.55128.cn/dlt-history-360.htm双色球网页地址:https://kjh.55128.cn/ssq-history-120.htm 注:程序仅用于个人兴趣爱好,不得用于商业行为,本......