又有EOS上的菠菜游戏被黑了,这个倒霉蛋是Fastwin。

自从EOS主网上线以来,上面的DAPP频繁被黑,前几次都没​​有做什么总结,今天下午才听说又有一个新的菠菜游戏被黑了,就去看了下。看到一篇文章https://mp.weixin.qq.com/s/1sV2ps1n6pPNb-0qiTXG9Q中讲到,黑客利用了合约内部的内联内联操作,攻击了菠菜游戏,就去浏览器上看了下相关账号,总结,分享下经验,以免之后的开发者再犯类似的错误。

黑客账号:ha4tsojigyge

Fastwin项目账号:fastwindice3

PeckShield公司发布的文章中介绍到:

“攻击者(ha4tsojigyge),在自己帐号部署的合约中包含了与游戏合约相同的操作函数,在转账完成后,自行开奖获得奖金。”

“攻击者在自身合约的函数(pushck)中,内联调用了与游戏合约开奖同名的函数(检查),再通过通知(require_recipient)的方式将信息发送到了游戏合约。此时游戏合约的分发逻辑(申请)没有过滤掉此信息,并调用了开奖函数(检查)“。

要补充一点的是,黑客ha4tsojigyge不光调用pushck,检查组合方法来攻击合约,还疯狂调用了pushclose,关闭组合方法,pushopenif,upopeninfo组合方法,

pushopen,open组合方法,对Fastwin项目方fastwindice3发起了N多次的攻击。引用PeckShield的攻击,一共发起124次攻击,共计获利1,929.17个EOS。

感觉上文总结的攻击方式不够详尽,我想来再说一说这次攻击。

我们来看下浏览器中,该黑客账号ha4tsojigyge的情况:

 

从这张图中,我们可以看到,黑客一共发起了4次攻击。

用红框框出来的操作就是一次完整的攻击,一次完整的攻击一共包含了5个操作,分别是:

1,pushopenif,upopeninfo组合方法

2,pushopen,开放的组合方法

3,正常下注

4,pushclose,靠近组合方法

5,pushck,检查组合方法

下面我们来分别看看这5个方法,拿具体的某一次攻击为例:

1,HTTPS://eosq.app/tx/c021e94a30dcd1dee3829cbe13893e9253bd027b45caad504a502bfc1bb12bd3

 

本来只有ha4tsojigyge @ active权限,内联一下,就变成fastwindice3 @ active权限了!这个是1.5.0版本的漏洞,再1.5.1版本中已经改正。

然后黑客再利用require_auth方法,通知一下菠菜游戏合约。

这时候,最致命的问题出来了:菠菜游戏合约并没有在函数分发器中判断 “接收器==代码”,有可能只是校验了权限发现是自己的权限,任何操作统统放行,然后就中!了黑客的圈套。

2,HTTPS://eosq.app/tx/13e858b43c8dc046eb42ef9e23a5bda6f35a9b37351291034bf353f6404b0b18

 

(攻击方式雷同,不再赘述)

3,HTTPS://eosq.app/tx/7512539b4a291765d5b06a3ce6a7864ec6185b271230c15b09144113e7fc87b7

 

正常转账(下注)。

4,HTTPS://eosq.app/tx/965bcce0060559240b6af4ae6a7185c6b7ecb660a4fd4b35343d3700574ae4d5

 

(攻击方式雷同,不再赘述)

5,HTTPS://eosq.app/tx/c571974b8ec1194b022ee55801abf4397f6d7290353414024e896ee0dc8c2cf4

 

 

(攻击方式雷同,不再赘述)

我们再来看看这些行动中值得注意的参数有哪些:

1,

 

 

upopeninfo操作的参数,暂时没看出是什么意思,我猜是竞猜选项。

2,开放的操作没有参数

3,

 

下注时候的 “备忘录” 字段,一看就是下注了哪个选项的意思。

如图4所示,靠近操作没有参数

5,

 

检查操作的参数,应该是赌注的结果。因为给了结果后,菠菜游戏就结算发奖了。

这样,我们就差不多还原了黑客的攻击方式。

EOSIO系统,区块链还在不断开发,探索阶段,难免有多多少少的漏洞。有漏洞就去改,就这么简单。人们为什么要去攀登珠峰,因为它就在那里。  

 

我是小可爱

2 votes, average: 5.00 out of 52 votes, average: 5.00 out of 52 votes, average: 5.00 out of 52 votes, average: 5.00 out of 52 votes, average: 5.00 out of 5 (2 votes, average: 5.00 out of 5)
You need to be a registered member to rate this.
(200 total tokens earned)
Loading...

Responses

  1. helmibireuen

    感谢您提供这些有价值的信息,希望所有人都会更加小心。感谢您分享@Dapp

    Thank you for this valuable information, I hope that all people will be more careful. Thank you for sharing @DEPPX

    (0)