加密钱包漏洞利用与分析( 三 )


加密钱包漏洞利用与分析

文章插图

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




推荐阅读