前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HackerOne | Web缓存欺骗攻击

HackerOne | Web缓存欺骗攻击

作者头像
Timeline Sec
发布2019-12-15 11:42:46
6410
发布2019-12-15 11:42:46
举报
文章被收录于专栏:Timeline SecTimeline Sec

漏洞信息

发现者:Ron Reshef (ronr)

漏洞种类:Web缓存欺骗攻击

危害等级:中危

漏洞状态:已修复

前言

网站通常倾向于使用Web缓存功能来存储经常检索的文件,以减少来自Web服务器的延迟。

网站通常倾向于使用Web缓存功能(例如,通过CDN,负载平衡器或简单地通过反向代理)。目的很简单:存储经常检索的文件,以减少Web服务器的延迟。

访问诸如

http://www.example.com/home.php/non-existent.css之类的URL时,浏览器将生成对该URL的GET请求。

服务器返回

http://www.example.com/home.php的内容。

但是,URL仍然为

http://www.example.com/home.php/non-existent.css

HTTP标头与直接访问

http://www.example.com/home.php的相同:缓存标头和内容类型(在这种情况下为text/html)均相同。网络缓存服务将返回的页面保存在服务器的缓存中。

然后,攻击者可以访问URL:

http://www.example.com/home.php/non-existent.css,此时受害者访问的页面将会显示给攻击者,同时攻击者会获取受害者的敏感信息(页面内容)。

与网络钓鱼攻击不同,此攻击中的危险部分是该URL看起来一点都不可疑。它看起来像原始网站上的普通网址,因此受害者认为可以单击该链接。

漏洞再现

1、攻击者将以下链接发送给受害者:

https : //open.vanillaforums.com/messages/all/non-existent.css

2、受害者打开链接,收件箱页面将正常加载。(然后,Web缓存服务器将保存此页面)

3、攻击者打开相同的链接

(https://open.vanillaforums.com/messages/all/non-existent.css),然后加载受害者及其所有私人竞争者的收件箱页面。

漏洞影响

攻击者可以获取特定受害者的所有私人内容,而无需受害者知道。

译者分析

该漏洞提交者,没有系统的讲解该漏洞的原理,此处,译者参考网上一些资料,对该漏洞的原理、触发条件做一个讲解(主要参考freebuf中的)。

原理:

假设客户端访问

http://www.example.com/home.php/non-existent.css

但non-existent.css是不存在,那WEB服务器此时会发生一下情况:

(1)返回404 not found;

(2)相应状态码200 OK,然后把home.php返回。这时缓存服务器拿到的请求是http://www.example.com/home.php/non-existent.css,是一个静态页面,而WEB服务器返回给缓存服务器的结果是http://www.example.com/home.php,不是一个静态页面,但是缓存服务器并不知道。

触发条件:

1、WEB服务器会将类似

http://www.example.com/home.php/nonexistent.css这种静态页面解析为home.php。

2、缓存服务器会无视http header,只根据文件后缀来判断是否缓存该文件。

3、受害者访问该页面时必须已登录。

满足这三个条件,攻击者就可以引诱已登录的受害者访问http://www.example.com/home.php/non-existent.css,之后缓存服务器接收到请求,但没有这个页面,向服务器请求,服务器返回http://www.example.com/home.php,状态码为200,缓存服务器收到后,会认为URL不变,且.css是个静态文件,进行缓存。攻击者再此访问http://www.example.com/home.php/non-existent.css,缓存服务器就会将带有已登录受害者信息的http://www.example.com/home.php页面返回给攻击者。

相关复现

Omer Gil通过控制 Web 缓存可以保存其它用户的敏感数据,并成功在 Paypal 中实现了攻击(http://omergil.blogspot.com/2017/02/web-cache-deception-attack.html)

相关视频:

https://v.qq.com/x/page/q0380jhvn18.html

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Timeline Sec 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档