专栏首页Timeline SecHackerOne | Web缓存欺骗攻击

HackerOne | Web缓存欺骗攻击

漏洞信息

发现者: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

本文分享自微信公众号 - Timeline Sec(PaperPenSec),作者:Richard

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 记一次360众测仿真实战靶场考核WP

    User-Agent: Mozilla/5.0 (iPhone; CPU iPhoneOS 8_0 like Mac OS X) AppleWebKit/600...

    Timeline Sec
  • 严重:PHP远程代码执行漏洞复现

    9 月 26 日,PHP 官方发布漏洞通告,其中指出:使用 Nginx + php-fpm 的服务器,在部分配置下,存在远程代码执行漏洞。并且该配置已被广泛使用...

    Timeline Sec
  • 通达OA前台任意用户伪造登录漏洞复现

    通达OA采用基于WEB的企业计算,主HTTP服务器采用了世界上最先进的Apache服务器,性能稳定可靠。数据存取集中控制,避免了数据泄漏的可能。提供数据备份工具...

    Timeline Sec
  • 添加百度Ping加快百度收录

    更新网站,然后等待搜索引擎来收录,这种被动式的方法现在已经过时了。现在很多博客系统都加入了Ping 服务功能,所谓Ping 服务,实际上是一种更新通知服务,它可...

    空木白博客
  • CentOS 7 下安装部署.NET Core多版本环境

    .NET Core作为 .NET的开源版本,可以说是非常拥抱开源了,更新的力度也非常给力。却也从开源世界学了点坏东西,那就是:不再重视向下兼容(比如 .NET ...

    KenTalk
  • ​大数据和云计算技术周报(第39期)

    “大数据” 三个字其实是个marketing语言,从技术角度看,包含范围很广,计算、存储、网络都涉及,知识点广、学习难度高。

    大数据和云计算技术
  • 发现插件生成的robots.txt不能被谷歌和360识别

    上次通过《正确的 Win 主机网站伪静态设置方法》重新设置了玛思阁的伪静态,当时由于使用 Rewrite robots 没有效果,就安装了一个生成 robots...

    张戈
  • CTF学习站点总结

    CTF学习站点总结 0x00 前言 公众号的后台,有很多的朋友都在问,你们CTF是怎么入门的? 有没有什么东西能和我们分享下的? 有没有什么学习的网站啊之类的问...

    ChaMd5安全团队
  • PHP程序员锦囊

    不错的编辑器 simitor http://simditor.tower.im/ 百度 http://ueditor.baidu.com/website...

    lilugirl
  • 用LogParser对IIS 日志进行分析

    LogParser 是一个命令行工具,可以通过SQL 语句对日志进行分析统计,LogParser功能非常的强大,不但可以分析IIS日志,还可以分析系统事件日志,...

    张善友

扫码关注云+社区

领取腾讯云代金券