加密钱包漏洞利用与分析


加密钱包漏洞利用与分析

文章插图
区块链技术的迅速发展,使得加密资产逐渐成为大众的投资方式之一 。全球加密资产规模的高速增长使得钱包成为每一个加密资产拥有者不可或缺的资产管理工具 。
加密领域里,数字钱包和资金息息相关,越来越多的人意识到了数字钱包安全的至关重要性 。
2020年8月9日,CertiK的安全工程师王沛宇(Peiyu Wang)与何敏之(Minzhi He)在DEF CON区块链安全大会上发表了演讲主题为:Exploit Insecure Crypto Wallet(加密钱包漏洞利用与分析)的主题报告 。
加密钱包是一种存储私钥和/或公钥的设备、程序或服务 。因为加密货币是虚拟的,所以加密钱包不能用来存放现实中的钱币 。但当我们进行交易时,加密钱包可以使用用户的私钥来为交易签名,并在区块链上进行广播 。
加密钱包有不同的种类,比如软件钱包和硬件钱包 。本次演讲将重点关注网页钱包和桌面钱包 。
点击链接观看加密钱包科普演讲视频:https://v.qq.com/x/page/v3135cz0g73.html
 
网页钱包这是一个典型的网页钱包界面,它就是我们CertiK的Deepwallet钱包 。用户可以在这个界面中看到账户余额以及发送货币的选项,因为这是一个基于COSMOS的钱包,所以具有委托功能 。
加密钱包漏洞利用与分析

文章插图
当谈论到网页应用安全问题时,我们最先想到的就是“开放式Web应用程序安全项目(OWASP)”的十大安全漏洞 。
以下是CertiK安全工程师调查的27款网页钱包中“OWASP Top 10”的十大安全漏洞的一些统计数据 。CertiK安全工程师在3款钱包中发现了跨站脚本攻击(XSS),在此选取2例进行案例研究 。
加密钱包漏洞利用与分析

文章插图
我们在一个去中心化钱包里发现了一个SqI注入漏洞 。但是它的数据库只包含了交易数据,由于区块链中的交易数据已经公开,利用Sql注入来偷取数据并没有什么意义 。由于也没有办法利用SqI注入实现后台代码执行,在这种情况下,这个SqI注入攻击是没有多少实际影响的 。
此外,这个去中心化钱包内的某个API的访问权限存在漏洞,未经授权的用户可以篡改其他人的2FA设置,但是没办法利用这个漏洞去盗取别人的账户里面的资产 。
有很多网页钱包都缺少安全标头(header),例如Content Security Policy (CSP) 和“X-Frame-Options”的标头,这会使得钱包容易遭到点击劫持(Clickjacking)攻击 。
一些钱包还在用早已过时的JAVAScript库和存在CVE的Nginx/Apache服务器,这些漏洞同样无法直接被利用 。
CertiK安全工程师暂未发现任何处理XML格式数据的钱包,也没有发现有钱包进行了任何反序列化操作,所以没有发现XXE以及反序列相关的漏洞 。关于日志和监控方面,也暂时没有更多信息 。

案例一:去中心化网页钱包的DOM XSS漏洞
这是一个去中心化的网页钱包的DOM XSS漏洞案例 。这个钱包支持单一协议,并拥有网页钱包的所有基本功能 。
  • 存在漏洞的功能
此应用程序会保存上次的访问位置:用户用密码解锁钱包后,会重新跳转到解锁之前的页面,下图是实现此功能的代码 。如果你有测试网页应用程序的经验,就知道这种情况很有可能存在DOM XSS漏洞,本案例就是如此 。
  • DOM XSS
DOM XSS需要Source和Sink 。Source是应用程序收到非可信数据(用户输入)的位置,然后会将其传递给Sink 。当用户访问此链接时,“window.location.search” 将返回 "?returnTo=/validators",然后“{returnTo}”会包含"/validators" 。
加密钱包漏洞利用与分析

文章插图
Sink是处理来自Source的非可信数据的地方,因此Sink在这里是:“window.location.href”,如果用户输入“returnTo=/validators” 。钱包返回到“/validators”,即转到验证者页面 。如果输入“returnTo=JavaScript:alert(1)”,将在浏览器中弹出alert窗口 。
  • Keystore和Password

加密钱包漏洞利用与分析

文章插图
这个钱包属于去中心化的网页钱包 。用户创建帐户或导入帐户后,Keystore和Password都存储在本地存储中 。
  • 使用JavaScript读取本地存储
JavaScript能够读取本地存储中的信息 。在本案例中,键值数据显示为存储在本地存储中的“Hello World” 。JavaScript就可以执行LocalStorage.getItem(“Hello”)获取“World” 。


推荐阅读