?个通杀绝大多数交易平台的 XSS 0day 漏洞_TOR:RAD

文章来源:慢雾科技作者:慢雾安全团队

引子

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

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

0day漏洞预警

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

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

Curve发起支持wstETH为抵押品铸造crvUSD的社区投票,债务上限定为1.5 亿crvUSD:6月1日消息,据相关页面信息,Curve 发起 416 号社区投票,拟部署 1.5 亿 crvUSD 债务上限的 wstETH 市场,并将 PegKeepers 的限制提高到每个 2500 万 crvUSD。[2023/6/1 11:51:43]

防御方案

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

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

币安将于5月26日取消LINK等8种代币的澳元交易对:金色财经报道,币安将于5月26日取消8种数字资产的现货交易活动,包括Apecoin和Shiba Inu与澳元(AUD)配对。其他受影响的加密资产包括Chainlink (LINK)、Polkadot (DOT)、axy Infinity (AXS)、Avalanche (AVAX)、Fantom (FTM)和Sandbox (SAND)。

该交易所在5月24日的一份声明中解释说,用户仍然可以在其平台内的其他交易对上交易受影响的资产。然而,它将终止对上述配对的交易机器人服务。[2023/5/24 22:14:55]

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

Draper Associates合伙人:经济衰退即将来临:金色财经报道,风险投资公司Draper Associates创始合伙人Tim Draper在MiamiWeb3会议中表示,加密货币市场持续动荡,经济衰退即将来临,但可能存在一线希望,因为前31大最有价值公司中有30家是在熊市之后成立的。他说,“我们正在经历一场根本性的变革,将会有很多摩擦,Web3人士要保持低调,继续做事。当大环境不好时,人们就会专注于质量,比特币将成为更中心化的加密货币中的赢家”。[2022/12/1 21:14:26]

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

漏洞细节

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

Kraken CEO:将阻止与Tornado Cash地址相关的交易:8月17日消息,据报道,Kraken首席执行官Jesse Powell证实该交易平台将阻止与TornadoCash地址相关的交易,不过Jesse Powell反对美国最近对于Tornado Cash相关的地址实施制裁。Jesse Powell在接受彭博社采访时声称个人有权享有财务隐私,并表示许多人其实出于正当理由使用Tornado Cash。

另一方面,Jesse Powell觉得社区的反应可能被夸大了,尽管Tornado Cash的GitHub代码库被删除是不必要的,他觉得本次制裁可能是监管机构对TerraUSD崩溃的下意识反应导致。(彭博社)[2022/8/17 12:29:55]

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

必须存在三个参数:

disabledFeaturesenabledFeaturesindicatorsFile

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

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

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

https://xssor.io/s/x.js

那么,另外两个参数为什么是必要的?继续看代码:

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

漏洞威力

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

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

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

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

最后做个补充:

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

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

来源链接:mp.weixin.qq.com

本文来源于非小号媒体平台:

慢雾科技

现已在非小号资讯平台发布1篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/3627037.html

漏洞风险安全

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

下一篇:

区块链照妖镜上线,你的对面是好是坏我一看就知道

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

水星链

[0:0ms0-0:504ms