缓存投毒漏洞理解

VSole2022-03-21 09:43:17

在先知上看到了一篇关于缓存投毒的分享,属实是小刀拉屁股,开了眼。

但是那篇翻译的文章属实还是有点抽象,根据那篇文章,说说我理解的缓存投毒漏洞。

首先利用条件需要目标,存在CDN网络,或者前置的缓存服务器,可见这也是个富贵病。

1.缓存服务器原理

缓存服务器可以简单理解为一个map[string]string结构,根据不同key来返回不同的缓存内容。

但是这个key的来源各个cdn或者缓存服务器上就有很大差别,这也就是缓存投毒问题的来源。

以百度的一个静态资源来看

添加?a以后,缓存时间变了

说明这两个url对应的是不同的缓存文件,缓存的key可能就是 url的path。

额外请求头不影响到返回的缓存内容。

2.缓存投毒实例

在Rack 中间件中,会根据用户传递的x-forwarded请求头,来生成重定向链接

x-forwarded-scheme:http
x-forwarded-host:a.com

正常请求时,重定向到内页

在添加x-forwarded-host请求头以后,页面重定向到了我们提供的域名

根据刚才的缓存规则,这个网站如果存在缓存服务器,正常的301页面会被恶意的301页面缓存覆盖,其他普通用户击中了我们的缓存就会被重定向到恶意页面中。

3.前后端服务器差异

除了可控的请求头外,前后端服务器差异也是缓存投毒的一个重要原因。

根据RFC7230[1]定义header中\是不合法的,后端服务器应该拒绝请求

但是如果在cdn中未实现此规范,将\转发到后端服务器,很可能会将400页面作为url的响应进行缓存,造成正常页面的DOS。

4.总结

可见缓存投毒产生的原因大部分都是未预期的请求头,但是大部分所能造成的危害有限。

但是这种攻击排查起来难度极高,攻击成本低,可能仅需要一条请求就造成全站DOS。

参考文章

https://xz.aliyun.com/t/10848

References

[1] RFC7230: https://datatracker.ietf.mrg/doc/html/rfc7230

缓存缓存服务器
本作品采用《CC 协议》,转载必须注明作者和本文链接
Http-Sumggling-缓存漏洞
2022-08-04 16:19:22
当http请求走私和web缓存碰到一起会产生什么样的火花呢,让我们看看
缓存投毒漏洞理解
2022-03-21 09:43:17
在先知上看到了一篇关于缓存投毒的分享,属实是小刀拉屁股,开了眼。 但是那篇翻译的文章属实还是有点抽象,根据那篇文章,说说我理解的缓存投毒漏洞。 首先利用条件需要目标,存在CDN网络,或者前置的缓存服务器,可见这也是个富贵病。 1.缓存服务器原理 缓存服务器可以简单理解为一个map[string]string结构,根据不同key来返回不同的缓存内容。 但是这个key的来源各个cdn或者缓存
Web缓存就是服务器会先将之前没见过的请求对应的响应缓存下来,然后当有认为是相同请求的时候直接将缓存发给用户,这样可以减轻服务器的负荷。
HTTP request smuggling与CTF实战利用
探讨DNS解析流程
2022-08-08 22:05:47
如果 DNS 服务器出现故障,整个 Internet 网络都将关闭。本地 DNS 服务器收到来自客户端的 DNS 请求,它会在其缓存中查找 google.com 的 IP 地址。根域名服务器作为最高级别的 DNS 服务器,全球共 13 台。顶级 .com 区域 DNS 服务器再次为该请求指明了方向。
CDN绕过技术总汇
2022-05-06 15:41:45
在HVV培训以及面试中,有人问了CDN该如何绕过找到目标真实IP,这向来是个老生常谈的问题,而且网上大多都有,但是有些不够全面,今天把绕过CDN全理一理。
为API测试进行设Postman是一个方便的应用程序,使API安全测试变得轻而易举。更糟糕的是,供内部使用的API往往没有必要实施复杂的认证流程,因此可能会实施静态令牌作为其认证。许多API会给出足够详细的错误,以列举未记录的端点和参数。
发现漏洞一、环境准备1、在Linux主机上准备一套Xampp:模拟攻防2、在VSCode利用Remote Development进行远程调试3、在Lampp的htdos目录下创建security目录,用于编写服务器PHP代码二、编写Login.html三、编写Login.php"; echo "location.href='welcome.php'";}else{ // echo "login-fail. "; echo "location.href='login.html'";}//关闭数据库mysqli_close?
浅谈net-ntlm的利用
2022-12-16 10:38:09
浅谈net-ntlm的利用。
通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析。地址1.3 DNS 的功能每个 IP 地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。主机名到 IP 地址映射的两种方式静态映射/etc/hosts文件在每台设备上都有主机到IP的映射关系,只供此设备使用动态映射/etc/resolv.conf文件指通过DNS服务器配置主机到IP的映射关系#?
VSole
网络安全专家