17年未修复的Firefox本地文件窃取漏洞分析 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

17年未修复的Firefox本地文件窃取漏洞分析

ang010ela 漏洞 2019-07-12 11:05:04
157105
收藏

导语:安全研究人员Barak Tawily利用17年前报告的Firefox漏洞利用HTML文件窃取设备文件。

近期,安全研究人员Barak Tawily对同源策略(Same Origin Policy)攻击进行了研究,发现Firefox浏览器由于对文件方案URI同源策略的不当实现,会导致Firefox浏览器受到本地文件窃取攻击。

攻击场景分析

· 攻击者发送一个含有附件的邮件给受害者;或受害者浏览恶意网站并下载恶意文件。

· 受害者打开HTML恶意文件。

· 文件会在iframe中加载包含的文件夹,Poc中的文件路径为file:///home/user/-malicious.html, iframe源为file:///home/user/

· 受害者以为点击的是恶意HTML页上的按钮,实际上点击了iframe目录列表中的恶意文件html(注:使用了ClickJacking技术来实现context switching bug)。

· 恶意iframe就可以进行权限提升,并可以读取含有恶意文件的文件夹中的所有文件(注:大多数情况下是downloads文件夹,PoC中为file:///home/user/)。

· 恶意文件可以读取其包含的文件夹中的任意文件(file:///home/user/),比如通过取回URL file:///home/user/.ssh/ida_rsa和再提取一次攻击者的恶意网站来读取SSH私钥。

· 攻击者利用该漏洞就可以获取包含恶意文件的文件夹中的所有文件

PoC

PoC视频地址:
https://youtu.be/XU223hfXUVY

漏洞根源分析

RFC对web origin概念中没有描述文件方案URI SOP的实现。

Page 10: 如果`uri-scheme`是`file`,实现可能会返回实现定义的值。注:用户代理一般会授予file scheme中的内容大类的权限。但是,授予所有本地文件这样大范围的权限会导致权限提升攻击。一些用户代理已经成功授予本地文件基于目录的权限,但该方法并没有被广泛采用。其他用户代理对每个文件URI使用全局唯一的id,这也是最安全的方法。

所以,RFC说实现可能会返回实现定义的值,研究人员认为可以理解为:可以任意实现You can do whatever you want。
另外,还有一些其他的方法:

· 授予本地文件大类的权限,这是不安全的,也没有浏览器这样实现。

· 根据目录授予本地文件权限,这也是不安全的,但要比前一种方法安全,目前只有Firefox这样实现。

· 根据文件首先本地文件权限,这种方法是安全的,目前Chromium 和Edge都是这样实现的。

image.png

从上面可以看出,除了Firefox支持基于目录的SOP外,所有的主流浏览器都不允许从文件scheme取回请求:

image.png

研究人员认为RFC可以通过强制要求用户代理(user-agent,浏览器)使用最安全的方法来实现,不允许开发者犯这样的错误,使客户端暴露到这种攻击中。
虽然RFC定义的file schemes URI的SOP实现是不安全的,但Firefox选择使用了这种不安全的方法:
这种同源策略的实现方法允许每个file:// URL访问同目录文件夹和子文件夹的所有文件。
Firefox只引用了基于目录的SOP实现,只考虑了一个文件可以读取目录中的文件,但没有考虑到还可以读取相同目录下的其他文件,这使攻击更加威胁。
研究人员发现有人17年前就报告了几乎相同的漏洞,但Firefox并没有解决。研究人员认为这是一个非常严重的问题,需要尽可能快地解决。

  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务