您当前的位置:首页 > 电脑百科 > 安全防护 > 网络安全

加密钱包漏洞利用与分析

时间:2020-08-17 11:25:24  来源:  作者:
科普:加密钱包漏洞利用与分析

区块链技术的迅速发展,使得加密资产逐渐成为大众的投资方式之一。全球加密资产规模的高速增长使得钱包成为每一个加密资产拥有者不可或缺的资产管理工具。

加密领域里,数字钱包和资金息息相关,越来越多的人意识到了数字钱包安全的至关重要性。

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”。

科普:加密钱包漏洞利用与分析
  • 利用DOM XSS

那如何利用所发现的DOM XSS漏洞来窃取本地存储中的Keystore和Password呢?

在下面的这个URL中,它可以读取Keystore和Password的内容,并将其发送到黑客的服务器。在黑客的服务器日志中,可以直接看到Keystore内容和Password。一旦掌握了这些信息,就相当于控制了用户的账户,可以登录到他们的钱包并将钱转出。

科普:加密钱包漏洞利用与分析
  • 修复方法

该网页钱包厂商的修复方法为,每当用户解锁钱包,网页钱包总会重定向到个人主页,从而不给攻击者任何插入恶意代码的机会。

案例二:托管网页钱包中的反射型XSS漏洞

第二个案例研究是关于某个托管网页钱包中的反射型XSS漏洞。托管网页钱包是由服务器管理所有私钥。如果要登录钱包应用,用户要通过电子邮件接收一次性密码。此案例中的钱包支持16种不同货币,具备所有钱包的基础功能以及一个附加功能,称作“推特赠送”。

  • API操作

API的URL格式类似于“/API/{endpoint}”,例如获取用户交易信息的API即为“/apiUser/cloudTrans”。

如果访问一个不存在的API端点,如“/api/test”,服务器将返回带有错误消息的页面,如下图“无法解析请求”。此外,我们发现链接中的内容出现在了服务器返回的页面中。

这代表着一个信号:如果后台不对用户输入进行任何处理或编码,就有可能遭到反射型跨站点脚本(Reflected XSS)攻击。

科普:加密钱包漏洞利用与分析
  • alert(document.domain)

在此钱包的API请求后面加上以下内容:

应用程序会弹出窗口。这是一个托管的的网页钱包,私钥归服务器管理,因此无法像第一个案例那样直接窃取用户信息。在这个案例中,我们的计划是尝试利用这个漏洞来劫持用户账户。

科普:加密钱包漏洞利用与分析
  • Cookie

用户登录后,其会话令牌存储在“phpSESSID”cookie中,而这个钱包的特殊之处在于这个令牌并没有“HttpOnly”。如果Cookie设置了HttpOnly,浏览器将阻止JavaScript访问这个cookie。换句话说,它可以抵御攻击者通过跨站点脚本攻击(XSS)窃取cookie中的会话令牌。

科普:加密钱包漏洞利用与分析
  • 获取会话令牌

由于本案例的会话令牌中没有HttpOnly,所以可以通过跨站脚本攻击(XSS),读取cookie内容并且发送到自己的服务器。获取会话令牌后,就可以用它来登录受害者的帐户。既然有了会话令牌,就是时候来一波洗劫一空了。

入侵钱包的最终目标大部分情况下是窃取用户资金,但还存在一个问题,因为在进行货币交易时还需要2FA验证。在这一点上,黑客既不能重置2FA,也不能禁用2FA,因此,攻击者需要想办法绕过2FA验证。

科普:加密钱包漏洞利用与分析
  • 绕过2FA验证

前面提到,这个钱包有一个推特赠送功能:当用户进入此功能界面时,它会询问用户想要赠送什么类型的货币、赠送多少货币以及赠送多少人。

通过这个截图可以看到,用户最多可以赠送2个比特币。

科普:加密钱包漏洞利用与分析

当用户设置好了赠送活动,其他人需要先点击关注,艾特3个朋友并转发此赠送推文,只要完成这些步骤,就可以去领奖了。

科普:加密钱包漏洞利用与分析

但问题就出在这个功能不需要2FA!攻击者可以通过反射型XSS,盗取受害者会话,登录受害者账户,创建很多赠送活动,然后自己去申领奖励。这样就可以把受害者的账户余额全部取出。

  • 修复方法

厂商对输出进行HTML编码,这样解决了XSS漏洞。同时为含有会话令牌的“PHPSESSID”Cookie设置“HttpOnly”。

这样一来,即便应用程序受到跨站点脚本攻击,攻击者也无法直接窃取账户的会话令牌。

 

桌面钱包

桌面钱包是一种在苹果操作系统、windowslinux上运行的应用程序。桌面钱包都使用了什么框架呢?

CertiK安全工程师研究了18款桌面钱包,其中QT(C++)、Dot Net(C#),Java各一个,其余15个使用了Electron框架。这部分的案例研究将探讨Dot Net桌面钱包的服务器远程代码执行漏洞,以及Electron钱包的客户端远程代码执行漏洞。

科普:加密钱包漏洞利用与分析

案例一:Dot Net桌面钱包的服务器远程代码执行漏洞

下文分析在桌面钱包中发现的一个远程代码执行漏洞。

首先介绍一下背景:这个钱包是一个去中心化的单一协议钱包,用C#语言编写,使用了Dot Net框架。它包含许多常见的钱包功能,如帐户管理、交易转账和部署/调用智能合约等。

比较有趣的是,它还允许用户上传文件到服务器。这功能在钱包中并不常见,所以我们决定进一步研究这个功能。如前所述,这个钱包是基于Dot Net的,如果没有对代码进行混淆,就很容易通过反编译来获取源代码。此案例钱包正是这种情况,因此我们能够恢复其源代码来进行进一步的分析。

  • 静态源码分析

在对可执行文件进行反编译之后,我们找到了实现文件上传的源代码,如下面的代码片段所示。

科普:加密钱包漏洞利用与分析

钱包向服务器发送一个HTTP POST请求并返回文件上传URL,“upload.php”是服务器上的处理文件上传的代码。现在我们知道服务器后台使用了PHP,因此,如果可以上传一个PHP Webshell到服务器并在浏览器中打开它,我们可能就能够在服务器上远程执行代码。

  • 文件上传

在成功地用钱包上传了一个PHP webshell文件之后,CertiK安全工程师尝试着在浏览器访问上传的文件。成功的访问了上传的Webshell, 并能在Webshell中执行命令。

我们同时发现该钱包的服务器是在“administrator”用户下运行的,因此能够以“administrator”权限执行命令。在这种情况下攻击者能够完全地控制这台服务器,并且能够操纵其他用户上传的文件。但是,由于这是一个去中心化的钱包,服务器不会存储任何用户私钥,所以此漏洞无法被利用来直接危害用户帐户。

科普:加密钱包漏洞利用与分析
  • 修复方法

修复是非常简单的,开发人员直接删除了文件上传功能,这样就不必再担心这个安全问题了。这是一个很好的办法,因为加密钱包应该尽可能地保持功能上的简洁,以此来避免安全问题。接下来,再来谈谈Electron钱包的安全问题。

案例二:桌面钱包客户端远程代码执行漏洞

Electron是什么?为什么要用Electron?

Electron是一个开源软件框架,它让开发人员能够使用HTML、css和JavaScrip来构建跨平台的桌面应用程序。

使用Electron的好处是开发人员可以重复利用网页应用程序代码来构建桌面应用程序,也就是说不需要找另外的代码库,也不需要学习新的编程语言。

在调试Electron应用程序时,使用谷歌浏览器的DevTools会非常容易。Electron应用程序可直接在操作系统上运行,因为它可以访问Node.js模块,所以也就可以构建比网页应用程序更强大的桌面应用程序。

今年六月,CertiK安全团队在Symbol桌面钱包中发现了一个远程执行代码漏洞,并将该漏洞提交到了Symbol漏洞赏金计划。详情请点击https://mp.weixin.qq.com/s?

 

总结

无论是由内部安全团队还是第三方公司执行安全审计和渗透测试,对于确保系统的安全性都是至关重要的。专业的安全人员会试图从“恶意黑客”的角度来破坏系统,帮助在真正的黑客利用漏洞之前识别和补救漏洞。



Tags:漏洞   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
log4j漏洞的形成原因已经有很多分析文章了,这里说一说我是如何在了解到有漏洞后,跟进漏洞产生原理的,以及发现的一些绕WAF tips跟进漏洞产生原因的思路如何发现漏洞产生的原因...【详细内容】
2021-12-22  Tags: 漏洞  点击:(8)  评论:(0)  加入收藏
这几天Log4j的问题消息满天飞,今天我们就一起来看看从源码角度看看这个漏洞是如何产生的。 大家都知道这次问题主要是由于Log4j中提供的jndi的功能。具体涉及到的入口类是lo...【详细内容】
2021-12-15  Tags: 漏洞  点击:(13)  评论:(0)  加入收藏
一、SQL注入漏洞SQL 注入攻击( SQL Injection ),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。在设计程序,忽略了对输入字符串...【详细内容】
2021-12-10  Tags: 漏洞  点击:(23)  评论:(0)  加入收藏
央广网北京12月10日消息(总台央广记者管昕)近年来,互联网消费平台迅速崛起,让人足不出户就可坐享天下美食,买到物美价廉的物品。为了抢占市场,各大平台推出名目繁多的优惠券等消费...【详细内容】
2021-12-10  Tags: 漏洞  点击:(16)  评论:(0)  加入收藏
一、漏洞介绍如果用户在受影响的系统上收到特制的 RPC 请求,则该漏洞可能允许远程执行代码。在 Microsoft Windows 2000、Windows XP 和 Windows Server 2003 系统上,攻击者可...【详细内容】
2021-09-23  Tags: 漏洞  点击:(73)  评论:(0)  加入收藏
一 前言本文将针对开发过程中依旧经常出现的SQL编码缺陷,讲解其背后原理及形成原因。并以几个常见漏洞存在形式,提醒技术同学注意相关问题。最后会根据原理,提供解决或缓解方案...【详细内容】
2021-09-17  Tags: 漏洞  点击:(65)  评论:(0)  加入收藏
应用程序与文件系统的交互始终是高度安全敏感的,因为较小的功能漏洞很容易成为可利用漏洞的来源。这种观察在web文件管理器的情况下尤其正确,其作用是复制完整文件系统的功能...【详细内容】
2021-09-17  Tags: 漏洞  点击:(56)  评论:(0)  加入收藏
Apple 设备系统最近面临了许多安全性方面的考验,好在在研究组织 Citizen Lab 地帮忙揭露下,最近一个名为「ForcedEntry」的攻击漏洞,已经被官方确认并提出了建议,建议所有用户安...【详细内容】
2021-09-15  Tags: 漏洞  点击:(70)  评论:(0)  加入收藏
什么是Nessus?Nessus 是目前全世界最多人使用的系统漏洞扫描与分析软件。总共有超过75,000个机构使用Nessus 作为扫描该机构电脑系统的软件步骤如下:查看当前kali系统内核版本...【详细内容】
2021-09-09  Tags: 漏洞  点击:(112)  评论:(0)  加入收藏
入侵一些网站,电脑,制作一些病毒,学会多项编程,这是一个普通黑客都会的技能,那么真正黑客能厉害到什么程度呢?除了勒索病毒,熊猫烧香等自动感染的病毒被大家熟知外,还有更厉害的骚操...【详细内容】
2021-08-19  Tags: 漏洞  点击:(66)  评论:(0)  加入收藏
▌简易百科推荐
(报告出品方:德勤)数字化转型网络安全及转型挑战在任何行业,保持竞争力都需要快速开发新产品和 服务并推向市场。创新型业务模式不仅仅是简单地将现有 流程数字化,其正在覆盖供应...【详细内容】
2021-12-22  认是    Tags:网络安全   点击:(19)  评论:(0)  加入收藏
10月18号, W3C中网络平台孵化器小组(Web Platform Incubator Community Group)公布了HTML Sanitizer API的规范草案。这份草案用来解决浏览器如何解决XSS攻击问题。 网络安全中...【详细内容】
2021-12-07  实战Java  博客园  Tags:脚本攻击   点击:(18)  评论:(0)  加入收藏
一、背景介绍大家在Linux的日常使用中都晓得如何通过命令行去配置Linux的端口开放规则,但是大家知道如何配置Windows入站出站规则吗?有哪些常见的危险端口呢?如何解决上述问题...【详细内容】
2021-12-01  Kali与编程    Tags:防火墙   点击:(30)  评论:(0)  加入收藏
网络安全服务商Randori公司日前发布了一份调查报告,列出了网络攻击者最有可能攻击或利用的IT资产。在遭遇Solarwinds黑客攻击一周年之际,以及在网络安全(尤其是勒索软件和供应...【详细内容】
2021-10-28  企业网D1net   企鹅号  Tags:网络攻击   点击:(57)  评论:(0)  加入收藏
0x01.背景实验利用Dns Administrators 组成员,通过远程配置Dns服务,进行Dll inject从而实现特权提升。 在域内,Dns server 通常为Dc Server,Dns服务器管理基于rpc,通过调用c:\wi...【详细内容】
2021-10-22  IT影子    Tags:特权提升   点击:(37)  评论:(0)  加入收藏
本文主要介绍和总结了CSRF跨站请求伪造的基本原理和主要防范措施,工作中有用到的朋友不妨收藏转发一下,以备您参考。什么是CSRF?CSRF跨站点请求伪造(Cross—Site Request...【详细内容】
2021-10-13  快乐中恒    Tags:CSRF   点击:(49)  评论:(0)  加入收藏
waf拦截在打某市 Hvv 第一天就找到一个文件上传的点,经过测试,可以直接任意文件上传,没有什么道理。 直接尝试上传 Php 文件,被 waf 拦截了 2021最新整理网络安全/渗透测试/安...【详细内容】
2021-10-11  KaliMa    Tags:防火墙   点击:(56)  评论:(0)  加入收藏
应用程序与文件系统的交互始终是高度安全敏感的,因为较小的功能漏洞很容易成为可利用漏洞的来源。这种观察在web文件管理器的情况下尤其正确,其作用是复制完整文件系统的功能...【详细内容】
2021-09-17  IT野涵    Tags:漏洞链   点击:(56)  评论:(0)  加入收藏
您的苹果手机尽管iPhone比Android更安全,但也可以通过各种方式入侵。避免黑客入侵的最佳方法是警惕奇怪的链接或粗略的应用程序,并仅在必要时提供信息。电池寿命差和性能低下...【详细内容】
2021-09-16  Hackers爱好者    Tags:黑客入侵   点击:(631)  评论:(0)  加入收藏
防火墙一般布置在逻辑区域的入口处,位于三层网络架构的核心和汇聚之间,起到隔离逻辑区域,为逻辑区域创建安全策略的作用。 上面就是应用区的防火墙布置方式,他布置在应用区,可以...【详细内容】
2021-09-03  知来知去    Tags:主备模式防火墙   点击:(109)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条