内容简介:通用K线展示JS库TradingView存在XSS0day漏洞,可绕过Cloudflare等防御机制。该漏洞被利用会导致用户帐号权限被盗、恶意操作等造成资产损失。本文为作者“区块链安全档案”,原创文章,转载时请保留本声明及附带文章链接。 内容仅供读者参考,并非投资建议,本网站将保留所有法律权益。
2018-09-20 20:30 区块链 技术 观点 1895 收藏
通用K线展示JS库TradingView存在XSS0day漏洞,可绕过Cloudflare等防御机制。该漏洞被利用会导致用户帐号权限被盗、恶意操作等造成资产损失。
0day 漏洞预警
通用K线展示JS库TradingView存在XSS 0day漏洞,可绕过Cloudflare等防御机制。该漏洞被利用会导致用户帐号权限被盗、恶意操作等造成资产损失。但是也有提出防御方案,即TradingView库bundles目录下有个library开头的js文件,检查这个文件是否存在漏洞代码: getScript(urlParams.indicatorsFile),如果存在,临时解决方案可以把代码改为:getScript("")。
虽然之前就有对外发声并也修复了,不过隐去了存在漏洞的具体组件:TradingView。但是发现漏洞细节已经开始失控,特出此文,针对这个漏洞做个剖析。
如上所说的防御方案,聪明的前端黑只要看了防御⽅案就会知道怎么去构造这个利用。
漏洞细节
TradingView是做K线展示最流行的JS库,在数字货币交易所、股票交易所等都有大量使用,所以影响目标很好找到。有个测试目标后,我们直接来看触发链接,随便找两个:
通过分析,触发最小简化的链接是:
必须存在三个参数:
disabledFeatures、enabledFeatures、indicatorsFile;
indicatorsFile很好理解,而且利用逻辑非常简单,代码所在位置:TradingView 库bundles目录下有个library开头的js文件,触发点如下:
$.getScript非常的熟悉了,在jQuery时代就已经实战了多次,这个函数核心代码是:
看代码,可以动态创建一个 script 标签对象,远程加载我们提供的 js 文件:https://xssor.io/s/x.js
那么,另外两个参数(disabledFeatures与enabledFeatures)为什么是必要的?继续看代码(同样是library开头的那个js文件):
这段代码在触发点之前,如果没有提供合法的disabledFeatures及enabledFeatures参数格式,这段代码就会因为报错而没法继续。很容易知道,合法参数格式只要满足这两个参数是JSON格式即可。所以,最终利用链接是:
漏洞威力
区块链安全公司 曲速未来 表示:为什么会说到这个XSS可以绕过Cloudflare等防御机制?这个“等”其实还包括了浏览器内置的XSS防御机制。原因很简单,因为这是一个DOM XSS,DOM XS的优点是不需要经过服务端,不用面对服务端的防御机制,同时不会在服务端留下日志(除非自己特别去处理)。也正是因为这是DOM XSS且非常简单的触发方式,浏览器端的XSS防御机制也没触发。
然后这个XSS的触发域和目标重要业务所在的域几乎没有做什么分离操作,利用代码其实非常好写,比如直接基于$里的一堆方法就可以轻易获取目标平台的目标用户隐私,甚至偷偷发起一些高级操作。
有经验的攻击者,是知道如何大批量找到目标的,然后就可以写出漂亮的利用代码。
本文内容由 曲速未来 (WarpFuture.com) 安全咨询公司整理编译,转载请注明。 曲速未来提供包括主链安全、交易所安全、交易所钱包安全、DAPP开发安全、智能合约开发安全等相关区块链安全咨询服务。
本文为作者“区块链安全档案”,原创文章,转载时请保留本声明及附带文章链接。 内容仅供读者参考,并非投资建议,本网站将保留所有法律权益。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
创业时, 我们在知乎聊什么?
知乎 / 中信出版社 / 2014-1 / 42.00元
★前所未有的互联网出版实验,500万知友亲手甄选内容,知乎三年创业问答精华大集结 ★史上最真诚创业书,用互联网思维讲透创业的逻辑 ★在知乎,最强大互联网创业群体真实分享创业路上的荣耀与隐忧 ★从Idea到步入正轨,创业公司如何招人、做技术、卖产品、找融资、建团队、处理法务? 他们在知乎聊创业: 创新工场创始人李开复 天使投资人 徐小平 小米科技创始人 雷军......一起来看看 《创业时, 我们在知乎聊什么?》 这本书的介绍吧!