CVE-2019-12592:印象笔记Chrome扩展漏洞分析

2019-06-16 约 52 字 预计阅读 1 分钟

声明:本文 【CVE-2019-12592:印象笔记Chrome扩展漏洞分析】 由作者 angel010 于 2019-06-17 06:03:00 首发 先知社区 曾经 浏览数 1 次

感谢 angel010 的辛苦付出!

Guardio研究人员发现了Evernote Web Clipper(印象笔记·剪藏)Chrome扩展存在逻辑编码错误漏洞,攻击者利用这些漏洞可以打破隔离机制并以用户的名义执行代码,并对非Evernote域名授予用户敏感信息的访问权限。财务信息、社交媒体、个人邮件等都是攻击的目标。该XSS漏洞CVE编号为CVE-2019-12592

背景

大多数互联网用户并不下载可执行文件或安装专门的软件。除了社交账号、商城和金融数据外,浏览器内直接也能提供一些扩展类的工具,来完成类似的功能。但这对app作者带来了挑战。一些工具需要额外的访问权限来更好地执行任务,比较好的解决方案就是创建一个浏览器扩展。App作者的意图是提供更好的用户体验,扩展一般拥有访问一些敏感资源的权限,也比传统的网站安全风险要更高一些。

研究人员分析发现了Evernote Web Clipper(印象笔记·剪藏)chrome扩展的漏洞。因为Evernote用户基数庞大,因此该漏洞影响的用户数预计超过470万。
与其他扩展漏洞不同的是,该漏洞直接影响第三方服务,而且并不仅限于个人的Evernote账号。

PoC

为了模拟攻击者如何利用该漏洞,Guardio研究人员设计了一个PoC来从潜在受害者处窃取隐私数据。通过将这些步骤串起来,很容易就可以进行攻击。
PoC步骤:

  • 用户被导航到攻击者的恶意站点(通过社交媒体、邮件、被黑的博客评论等);
  • 恶意站点加载目标站点中隐藏的、合法的iframe tag;
  • 漏洞利用是由恶意网站触发的,会导致Evernote的内部基础设施注入攻击者控制的payload到iframe环境。
  • 注入的payload是为每个目标网站定制的,可以窃取cookie、凭证、隐私隐私,还可以像用户一样执行动作。

漏洞细节

为了详细了解漏洞的情况,首先需要了解Evernote Web Clipper如何与网站和frame进行交互。
Evernote的代码注入链是从扩展的manifest (manifest.json)开始的,其中BrowserFrameLoader.js content脚本会被注入到所有页面和frame中。由于注入到frame的敏感性,只有这一个脚本使用了all_frames来减少攻击面。内容脚本的主要的主要目的是作为扩展的C2服务器来加载其他必需的代码到页面中。

对通信信道来说,脚本使用通过postMessage API的Windows消息机制(Windows Messaging)。作为一个小的注入器脚本,它只对少量的消息类型提供handler,其中一个就是installAndSerializeAll命令来注入到第二阶段FrameSerializer.js和执行序列化。该机制使用了一种弱认证方案,这种弱认证方案并不存在漏洞,但这是漏洞利用链的重要一步,因为运行在web沙箱环境中的脚本会触发命令。消息处理器(message handler)的参数作为命令请求消息的payload域。

最后,因为提供有效URL给扩展域名(chrome-extension://...)的_getBundleUrl函数中的逻辑检查和输入检查不当,研究人员发现URL的第一部分可以被handler的resourcePath输入参数进行操作。

黑客利用漏洞利用可以加载黑客远程控制的脚本到其他网站环境,只需要一个交单的window.postMessage命令即可。通过滥用Evernote的注入基础设施,恶意脚本会绕过同源策略的限制,注入到页面的所有目标frame中。

这提供了一个通用XSS注入到黑客控制的网站的所有frame的方法。

修复和建议

Evernote已经发布了补丁和新版本。用户可以复制chrome://extensions/?id=pioclpoplcdbaefihamjohnefbikjilc到Chrome扩展页来检查是否是最新版本,并确保版本号大于7.1.1。

https://guard.io/blog/evernote-universal-xss-vulnerability

关键词:[‘安全技术’, ‘漏洞分析’]


author

旭达网络

旭达网络技术博客,曾记录各种技术问题,一贴搞定.
本文采用知识共享署名 4.0 国际许可协议进行许可。

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now