一、Web缓存概述
Web 缓存是位于源服务器和用户之间的系统。当客户端请求静态资源时,请求首先被定向到缓存。如果缓存不包含资源的副本(称为缓存未命中),则请求将转发到源服务器,该服务器将处理并响应请求。然后,响应将发送到缓存,然后再发送给用户。缓存使用一组预配置的规则来确定是否存储响应。
当将来对同一静态资源发出请求时,缓存会将存储的响应副本直接提供给用户(称为缓存命中)
二、利用路径映射进行 Web 缓存欺骗
原理:缓存服务器和源服务器对于路径处理差异导致该问题。
利用思路:由于源服务器会对资源路径进行抽象,利用缓存服务器匹配规则,致使缓存服务器误将构造的恶意路径缓存住
1、寻找不严谨的源服务器资源路径
找到敏感路径进行测试,将路径后面加上容易被缓存服务器缓存住的资源如:11.js、11.css等。 查看源服务器是否会将修改后的路径抽象成正常的路径进行相应。
如图所示可以被相应并且能被缓存服务器缓存:
2、 构造而已请求,发送给受攻击者,诱使点击
攻击请求页面如下:
<script>document.location="https://YOUR-LAB-ID.web-security-acad