文章来源:慢雾科技作者:慢雾安全团队
引子
慢雾区前后两位白帽黑客给我们反馈了这个XSS0day,第一位反馈的很早,但他自己把这个漏洞危害等级定义为低危,我们服务的交易所平台修复后,我们也没特别在意,直到第二位给我们再次提及这个XSS。
昨天,我们开始对我们服务的所有客户下发这个预警,内容:
0day漏洞预警
根据慢雾区匿名情报,通用K线展示JS库TradingView存在XSS0day漏洞,可绕过Cloudflare等防御机制。该漏洞被利用会导致用户帐号权限被盗、恶意操作等造成资产损失。请确认是否使用到该组件,如有使用到请与我们联系。
当确定我们的客户修复后,我们开始对外发声,但隐去了存在漏洞的具体组件:TradingView。今天我们发现漏洞细节已经开始失控,特出此文,针对这个漏洞做个剖析。
某鲸鱼将2856亿枚PEPE转移至Binance:金色财经报道,据Spoton Chain数据显示,某鲸鱼5月13日以 0.00000164 美元(46.8 万美元)的价格从Huobi购买了2856亿枚PEPE,今日以 0.00000148 美元的价格将该笔PEPE转移至Binance。该鲸鱼在PEPE轻微损失了约44900美元。[2023/5/29 9:48:42]
防御方案
我们先给出当时我们同步给我们客户的临时快速解决方案:
TradingView库bundles?目录下有个library开头的js?文件,检查这个?文件是否存在漏漏洞洞代码:getScript(urlParams.indicatorsFile)
Galaxy Digital创始人:不希望比特币很快涨到100万美元:金色财经报道,Galaxy Digital创始人兼首席执行官Mike Novogratz近日在接受采访时表示,他希望美国经济保持强劲,不希望比特币“在短期内”从目前的水平飙升超过3000%,不希望比特币很快涨到100万美元。
根据他的说法,比特币达到100万意味着美国的不稳定已经开始,他不希望这种情况成为现实。[2023/4/19 14:13:59]
如果存在,临时解决?方案可以把代码改为:getScript(""),如有问题和我们反馈。
聪明的前端黑只要看了防御?案就会知道怎么去构造这个利用。
漏洞细节
TradingView是做K线展示最流行的JS库,在数字货币交易所、股票交易所等都有大量使用,所以影响目标很好找到。有个测试目标后,我们直接来看触发链接,随便找两个:
Bitcoin.com通过VERSE代币预售完成5000万美元融资,并推出Verse发展基金:12月8日消息,据官方新闻稿,数字生态系统和自托管平台Bitcoin.com宣布完成其奖励和实用代币VERSE的预售,筹集了5000万美元资金。此次预售的VERSE占总供应量的16%。VERSE将在去中心化交易所Verse DEX上推出VERSE交易。Bitcoin.com的VERSE代币预售中的其他战略买家包括Digital Strategies、Blockchain.com、Kucoin Ventures、Redwood City Ventures、Boostx Ventures和Poly Network。
此外,Bitcoin.com启动了Verse发展基金,该基金将于2023年第一季度开始接受开发人员和其他生态系统参与者的拨款申请。VERSE代币供应的34%分配给Verse发展基金,代币在7年内线性释放提供给基金。[2022/12/8 21:30:43]
通过分析,触发最小简化的链接是:
Justin Sun:网传“套现”不实,与USDC Circle往来仅是内部资金整理与调配:10月21日消息,Justin Sun 针对近日“转移 23.6 亿 USDC 到 Circle 套现”的传闻发表回应表示:网传套现不实,与 USDC Circle 往来仅是内部资金整理与调配,转入转出有大量重复计算,随着业务发展越来越好,相关的资金整理与调配会增加,对于行业发展来说是好事。[2022/10/21 16:34:27]
必须存在三个参数:
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.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场
下一篇:
区块链照妖镜上线,你的对面是好是坏我一看就知道
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。