【缓存欺骗-专题】

Burpsuit靶场

Exploiting path mapping for web cache deception

API KEY所在路径为

https://YOUR-LAB-ID.web-security-academy.net/my-account/

在这里插入图片描述

所以需要将受害者的目标网页缓存到服务器中,构造如下POC

<script>document.location="https://YOUR-LAB-ID.web-security-academy.net/my-account/test.js"</script>

将其发送给受害者,受害者会被定向到https://YOUR-LAB-ID.web-security-academy.net/my-account/test.js,由于test.js不存在,通过缓存欺骗,会讲受害者的/my-account路径下信息缓存进test.js,他人访问时就能看到受害者的APIKEY
在这里插入图片描述
发送后访问发送给受害者的链接
在这里插入图片描述

Lab: Exploiting path delimiters for web cache deception

这题其实就是将;作为路径分隔符,也就是POC

<script>document.location="https://YOUR-LAB-ID.web-security-academy.net/my-account;test.js"</script>

但是始终无法复现,无法击中缓存,不知道是不是服务器问题。(已解决)
需发送两次POC给受害者,两次点击后X-Cache会变成HIT状态,访问即可
在这里插入图片描述

Lab: Exploiting origin server normalization for web cache deception

观察发现,所有js文件都保存在resource文件夹下
在这里插入图片描述
同时,请求resource文件夹下的文件,观察数据包会发现命中缓存
在这里插入图片描述
可以知道,访问resource下的文件会触发缓存,所以我们可以用/resource目录进行穿越写入缓存到resource目录下,即
/resources/..%2Fmy-account
完整POC

<script>document.location="https://YOUR-LAB-ID.web-security-academy.net/resources/..%2Fmy-account?wcd"</script>

在这里插入图片描述
末尾的?wcd只是为了和测试时的缓存区分,但访问仍是miss
在这里插入图片描述
没有命中缓存,不知道是否是服务器问题。(已解决)
经过测试,最好发送两次POC到服务端,将X-Cache变为HIT状态
在这里插入图片描述

Lab: Exploiting cache server normalization for web cache deception

经过测试发现,/resources目录下文件都能够触发缓存
在这里插入图片描述
但我们使用/resources/../my-account时发现无法触发缓存
在这里插入图片描述
/resources/%2e%2e%2fmy-account同样无法触发缓存
在这里插入图片描述
所以猜测缓存服务器首先解码编码的文本,然后发生目录遍历,最后应用缓存规则。通过/my-account/%2e%2e%2fresources可以证实
在这里插入图片描述
但是这样的方法无法获取/my-account下的内容,所以我们需要在源服务器端使my-account后的路径失效,但在缓存服务器不能失效。也就是说我们需要一个缓存服务器无法识别但可以在源服务器/后端服务器上解释的函数。
爆破发现只有四个特殊字符可以造成截断:

%3f、?%23#

而其中只有%23和#不会被缓存服务器处理,可以触发缓存
在这里插入图片描述
所以向受害者发送以下POC

<script>document.location="https://0af200cf0434e279a9ecb9b300a6003d.web-security-academy.net/my-account%23/%2e%2e%2fresources"</script>

在这里插入图片描述
成功
在这里插入图片描述
注意这里不能使用#因为在发送HTTP请求时,浏览器将忽略#后面的内容,所以缓存服务器收到的内容也没有resources,显然是不行的。

Lab: Exploiting exact-match cache rules for web cache deception

这里我们发现数据都没有触发缓存,只有/robotx.txt能够触发缓存。所以和上题的思路一样,让缓存服务器识别到/robots.txt,让源服务器识别到/my-account
首先测试缓存服务器的缓存规则
在这里插入图片描述
命中缓存,证明缓存服务器先解码,然后进行缓存,接下来测试识别的分隔符,测试发现,缓存浏览器无法正确处理以下分隔符

%23 # ;

接下来测试源服务器适用哪个分隔符,测试发现使用;进行隔断可以正常识别到my-account
在这里插入图片描述
构造POC如下

<script>document.location="https://0ab4001e035d392882517a50008a0075.web-security-academy.net/my-account;%2f%2e%2e%2frobots.txt"</script>

发送给受害者后获得管理员csrftoken
在这里插入图片描述

修改email抓包,修改数据包中的csrf参数,生成POC发送给受害者
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值