风险提示:理性看待区块链,提高风险意识!
⼀个通杀绝⼤多数交易平台的 XSS 0day 漏洞
首页 > 币界资讯 > 区块链新闻 2018-09-19 14:20:00
币界网报道:
引子
 
慢雾区前后两位白帽黑客给我们反馈了这个 XSS 0day,第一位反馈的很早,但他自己把这个漏洞危害等级定义为低危,我们服务的交易所平台修复后,我们也没特别在意,直到第二位给我们再次提及这个 XSS。昨天,我们开始对我们服务的所有客户下发这个预警,内容:
 

#0day 漏洞预警#

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

当确定我们的客户修复后,我们开始对外发声,但隐去了存在漏洞的具体组件:TradingView。今天我们发现漏洞细节已经开始失控,特出此文,针对这个漏洞做个剖析。
 
防御方案
 
我们先给出当时我们同步给我们客户的临时快速解决方案:
 

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

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

聪明的前端黑只要看了防御⽅案就会知道怎么去构造这个利用。 
 
漏洞细节
 
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 XSS 的优点是不需要经过服务端,不用面对服务端的防御机制,同时不会在服务端留下日志(除非自己特别去处理)。也正是因为这是 DOM XSS 且非常简单的触发方式,浏览器端的 XSS 防御机制也没触发。

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

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

最后做个补充:

前端黑里,需要特别去做好的安全有:XSS、CSRF、CORS、Cookie 安全、HTTP 响应头安全、第三方 js 安全、第三方 JSON 安全、HTTPS/HSTS 安全、本地储存安全等。可以查看这篇近一步了解:

杂谈区块链生态里的前端黑:
https://mp.weixin.qq.com/s/d_4gUc3Ay_He4fintNXw6Q

本文作者:余弦@慢雾安全团队

上一篇: 蚂蚁区块链上线BaaS平台,半年落地15个场景
下一篇: 利用经济模型应对联盟链攻击的两种思路
推荐专栏
Boss Wallet Web3 Econom Pass
专注币圈最新资讯
通俗浅显地聊透Web3大事小情
读懂区块链生态与未来,尽在币界网!
热门币种
更多
币种
美元价格
24H涨跌幅
BTC比特币
60,963.61 USDT
¥435,103.38
-2.72%
ETH以太坊
3,368.69 USDT
¥24,042.67
-0.3%
BNB币安币
570.68 USDT
¥4,073.00
-0.28%
USDT泰达币
1.02 USDT
¥7.25
-0.19%
SOL
135.96 USDT
¥970.36
+7.66%
USDC
1.00 USDT
¥7.15
-0.01%
TON
7.59 USDT
¥54.14
+4.55%
XRP瑞波币
0.47720 USDT
¥3.41
+0.48%
DOGE狗狗币
0.12210 USDT
¥0.87140
+2.43%
ADA艾达币
0.39050 USDT
¥2.79
+3.88%
热搜币种
更多
币种
美元价格
24H涨跌幅
比特币
61084.28 USDT
¥443,630.69
-1.96%
Solana
142.4 USDT
¥1,034.19
-5.02%
Curve
0.291 USDT
¥2.11
-1.56%
Beta Finance
0.077908 USDT
¥0.57
-22.17%
Filecoin
4.5063 USDT
¥32.73
+0.71%
狗狗币
0.1256 USDT
¥0.91
+0.48%
柚子
0.5919 USDT
¥4.30
+0.96%
Conflux
0.1669 USDT
¥1.21
-2%
Shiba Inu
1.721E-5 USDT
¥0.00
-2.55%
Terra Classic
8.294E-5 USDT
¥0.00
-1.32%
波场
0.1224 USDT
¥0.89
-0.33%
dYdX
1.4105 USDT
¥10.24
-0.84%
最新快讯
更多
币界网最新行情晚报:BNB币安币价格达572.4美元/枚,日内跌幅-1.00%
2024-06-28 22:20:36
币界网最新行情晚报:ETH以太坊价格达3426.67美元/枚,日内跌幅-1.01%
2024-06-28 22:19:26
OpenAI推出基于GPT-4的模型CriticGPT
2024-06-28 22:05:04
Aethir宣布将Axelar集成为官方桥接平台
2024-06-28 21:59:06
币界网最新行情晚报:SOL索拉纳价格达143.22美元/枚,日内跌幅-2.00%
2024-06-28 21:57:24
Jambo加入Galxe的GALStaking生态,即将发布快照规则
2024-06-28 21:53:23
拜登仍计划参与9月的第二次总统辩论
2024-06-28 21:50:55
下载币界网APP