Web安全:缓存欺骗攻击;基于缓存、CDN的新型Web漏洞

ops/2025/1/25 4:12:01/
webkit-tap-highlight-color: rgba(0, 0, 0, 0);">

基于缓存CDN的新型Web漏洞

    • 漏洞原理
    • 利用方式
    • 解决方法

Web缓存欺骗漏洞(Web Cache Deception)是一种利用不安全的缓存机制来泄露用户敏感信息的攻击方式。攻击者通过操控请求URL诱导缓存系统将敏感信息缓存并对其他用户公开,可能导致用户数据泄露等严重问题。

漏洞原理

缓存
现代大多数Web应用会在应用前置CDN缓存代理,再通过URL来决定是否缓存内容。下面这里放一个Nginx的例子

	location ~* \.(css|js|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {proxy_cache cache;proxy_cache_valid 200 3m;proxy_cache_use_stale error timeout updating;......}

这段代码是 Nginx 配置的一部分,用于处理静态资源(如 CSS、JS、图片等)的缓存和代理。它定义了针对某些文件类型(通常是静态文件)的请求如何通过 Nginx 转发到后端的web应用,并缓存这些文件以提高性能。

  • location:定义一个匹配规则,匹配请求路径中的文件类型。
  • ~*:表示正则匹配,且不区分大小写。
  • \.(css|js|...):匹配文件扩展名为 CSS、JS、PNG 等静态资源。
  • proxy_cache cache:启用代理缓存,使用名为cache缓存区域。
  • proxy_cache_valid:当后端返回 HTTP 200 响应时,缓存的有效时间为 3 分钟。

Web的路径规则
这里我们写一个Go语言的Web应用的一部分示例,这个应用定义了一个/profile接口:

router := gin.Default() 
router.GET("/profile*", profileHandler) 
router.Run(":8080")
...

接口的处理是这样的,通过Token获取用户名再获取用户信息,以确保用户信息的安全。

func profileHandler(c *gin.Context) {//从Token中获取用户名username, err := GetUsernameFromToken(c)//获取用户信息userinfo,err := GetUserInfo(username)if err != nil { c.JSON(http.StatusUnauthorized, gin.H{ "status": "error", "message": err.Error()}) return }c.JSON(http.StatusOK, gin.H{"status": "success","data": userinfo )
}

利用方式

  1. 首先受害者是已经登录的状态
  2. 攻击者发送链接:http://*****.com/profile***********.css
  3. 受害者访问攻击者构造的链接,受害者的敏感数据将被Nginx缓存
  4. 攻击者访问其链接,因为Nginx会将其视为一个css文件,对其进行缓存,因此所有人都可以访问。

解决方法

  • 严格验证URL的路径和扩展名,拒绝非法请求。
  • 配置CDN/中间件的缓存规则,禁止对用户敏感页面的缓存
  • 确保敏感页面的响应头中包含:Cache-Control: no-store, no-cache, must-revalidate

http://www.ppmy.cn/ops/152920.html

相关文章

Windows7搭建Hadoop-2.7.3源码阅读环境问题解决列表

个人博客地址:Window7搭建Hadoop-2.7.3源码阅读环境问题解决列表 | 一张假钞的真实世界 环境说明 Windows 7java version “1.7.0_80”Apache Maven 3.2.3ProtocolBuffer 2.5.0cmake version 3.7.2 win64 x64Windows SDK 7.1构建过程参照源代码目录下BUILDING.txt说明文件中的…

算法刷题笔记——图论篇

这里写目录标题 理论基础图的基本概念图的种类度 连通性连通图强连通图连通分量强连通分量 图的构造邻接矩阵邻接表 图的遍历方式 深度优先搜索理论基础dfs 与 bfs 区别dfs 搜索过程深搜三部曲所有可达路径广度优先搜索理论基础广搜的使用场景广搜的过程 岛屿数量孤岛的总面积沉…

网络(三) 协议

目录 1. IP协议; 2. 以太网协议; 3. DNS协议, ICMP协议, NAT技术. 1. IP协议: 1.1 介绍: 网际互连协议, 网络层是进行数据真正传输的一层, 进行数据从一个主机传输到另一个主机. 网络层可以将数据主机进行传送, 那么传输层保证数据可靠性, 一起就是TCP/IP协议. 路径选择: 确…

WordPress免费证书插件

为了在您的网站上启用HTTPS,您可以使用本插件快速获取Let’s Encrypt免费证书。 主要功能: 支持快速申请Let’s Encrypt免费证书支持通配符证书申请,每个证书最多可以绑定100个域名支持自动续期证书支持重颁发证书,证书过期或失…

redis 分布式方案

文章目录 前言一、主从复制1、主从配置2、建立连接3、数据同步3.1、全量同步3.2、全量同步配置3.3、 增量同步3.4、 增量同步配置 二、redis sentinel1、主要功能2、sentinel配置3、高可用3.1、故障发现3.2、故障转移3.2.1、选举sentinel进行故障转移3.2.2、选举从节点升级成主…

Hive SQL 解决数据倾斜

数据采样与分析阶段 数据探查:在进行大规模数据处理之前,先对数据进行采样分析。使用SAMPLE关键字或者通过限制行数(如LIMIT)来获取小部分数据样本,查看数据的分布情况。例如,SELECT * FROM your_table SAM…

【R语言】数学运算

一、基础运算 R语言中能实现加、减、乘、除、求模、取整、取绝对值、指数、对数等运算。 x <- 2 y <- 10 # 求模 y %% x # 整除 y %/% x # 取绝对值 abs(-x) # 指数运算 y ^x y^1/x #对数运算 log(x) #log()函数默认情况下以 e 为底 双等号“”的作用等同于identical(…

FastExcel:高性能Excel处理框架

FastExcel&#xff1a;高性能Excel处理框架的全面解析 引言 FastExcel 是由原 EasyExcel 作者在阿里巴巴宣布停止维护 EasyExcel 后推出的升级版框架。 它不仅继承了 EasyExcel 的所有优点&#xff0c;还在性能和功能上进行了显著的提升和创新。 本文将深入探讨 FastExcel …