⼀个通杀绝⼤多数交易平台的 XSS 0day 漏洞

栏目: 编程工具 · 发布时间: 6年前

内容简介:慢雾区前后两位白帽黑客给我们反馈了这个 XSS 0day,第一位反馈的很早,但他自己把这个漏洞危害等级定义为低危,我们服务的交易所平台修复后,我们也没特别在意,直到第二位给我们再次提及这个 XSS。昨天,我们开始对我们服务的所有客户下发这个预警,内容:#0day 漏洞预警#

引子

慢雾区前后两位白帽黑客给我们反馈了这个 XSS 0day,第一位反馈的很早,但他自己把这个漏洞危害等级定义为低危,我们服务的交易所平台修复后,我们也没特别在意,直到第二位给我们再次提及这个 XSS。

昨天,我们开始对我们服务的所有客户下发这个预警,内容:

#0day 漏洞预警#

根据慢雾区匿名情报,通用 K 线展示 JS 库 TradingView 存在 XSS 0day 漏洞,可绕过 Cloudflare 等防御机制。该漏洞被利用会导致用户帐号权限被盗、恶意操作等造成资产损失。请确认是否使用到该组件,如有使用到请与我们联系。

当确定我们的客户修复后,我们开始对外发声,但隐去了存在漏洞的具体组件:TradingView。今天我们发现漏洞细节已经开始失控,特出此文,针对这个漏洞做个剖析。

防御方案

我们先给出当时我们同步给我们客户的临时快速解决方案:

TradingView 库 bundles ⽬目录下有个 library 开头的 js ⽂文件,检查这个⽂文件是否存在漏漏洞洞代码: getScript(urlParams.indicatorsFile)

如果存在,临时解决⽅方案可以把代码改为:getScript(""),如有问题和我们反馈。

聪明的前端黑只要看了防御⽅案就会知道怎么去构造这个利用。

漏洞细节

TradingView 是做 K 线展示最流行的 JS 库,在数字货币交易所、股票交易所等都有大量使用,所以影响目标很好找到。有个测试目标后,我们直接来看触发链接,随便找两个:

⼀个通杀绝⼤多数交易平台的 XSS 0day 漏洞

通过分析,触发最小简化的链接是:

⼀个通杀绝⼤多数交易平台的 XSS 0day 漏洞

必须存在三个参数:

disabledFeatures

enabledFeatures

indicatorsFile

indicatorsFile 很好理解,而且利用逻辑非常简单,代码所在位置:TradingView 库 bundles 目录下有个 library 开头的 js 文件,触发点如下:

⼀个通杀绝⼤多数交易平台的 XSS 0day 漏洞

$.getScript 非常的熟悉了,在 jQuery 时代就已经实战了多次,这个函数核心代码是:

⼀个通杀绝⼤多数交易平台的 XSS 0day 漏洞

看代码,可以动态创建一个 script 标签对象,远程加载我们提供的 js 文件:

⼀个通杀绝⼤多数交易平台的 XSS 0day 漏洞

那么,另外两个参数(disabledFeatures 与 enabledFeatures)为什么是必要的?继续看代码(同样是 library 开头的那个 js 文件):

⼀个通杀绝⼤多数交易平台的 XSS 0day 漏洞

这段代码在触发点之前,如果没有提供合法的 disabledFeatures 及 enabledFeatures 参数格式,这段代码就会因为报错而没法继续。很容易知道,合法参数格式只要满足这两个参数是 JSON 格式即可。所以,最终利用链接是:

⼀个通杀绝⼤多数交易平台的 XSS 0day 漏洞

漏洞威力

TradingView 是做 K 线展示最流行的 JS 库,在数字货币交易所、股票交易所等都有大量使用,所以影响目标很好找到。有个测试目标后,我们直接来看触发链接,随便找两个:

为什么我们会说这个 XSS 可以绕过 Cloudflare 等防御机制?这个“等”其实还包括了浏览器内置的 XSS 防御机制。原因很简单,因为这是一个 DOM XSS,DOM XSS 的优点是不需要经过服务端,不用面对服务端的防御机制,同时不会在服务端留下日志(除非自己特别去处理)。也正是因为这是 DOM XSS 且非常简单的触发方式,浏览器端的 XSS 防御机制也没触发。

然后这个 XSS 的触发域和目标重要业务所在的域几乎没有做什么分离操作,利用代码其实非常好写,比如直接基于 $ 里的一堆方法就可以轻易获取目标平台的目标用户隐私,甚至偷偷发起一些高级操作。

有经验的攻击者,是知道如何大批量找到目标的,然后写出漂亮的利用代码。这里就不展开了。


以上所述就是小编给大家介绍的《⼀个通杀绝⼤多数交易平台的 XSS 0day 漏洞》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

梦断代码

梦断代码

Scott Rosenberg / 韩磊 / 电子工业出版社 / 2008.06 / 49.00元

软件乃是人类自以为最有把握,实则最难掌控的技术。本书作者罗森伯格对OSAF主持的Chandler项目进行田野调查,跟踪经年,试图借由Chandler的开发过程揭示软件开发中的一些根本性大问题。. 本书是讲一事,也是讲百千事;是写一软件,也是写百千软件;是写一群人,也是写百千万人。任何一个在软件领域稍有经验的技术人员看完本书,必掩卷长叹:做软件难。...一起来看看 《梦断代码》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具