喜马拉雅 PC端文章详情页顶部23-26

【独家】获利能力超千台矿机,攻击者利用Fomo3D两天薅了近60个ETH

PeckShield研究人员观察到,攻击者通过利用Fomo3D的空投机制在两天时间内薅了近60个ETH。这种获利能力,可以比拟1000台以上GPU显卡矿机的挖矿能力。

图片来源:视觉中国

Fomo3D过去的一周内赚足了噱头,一场光明正大的“庞氏”游戏疯狂吸金,在链得得此前的报道中提到“Fomo3D的开发者,是对生态有深刻理解的现实主义者。Fomo3D鼓励黑客去黑掉智能合约,来证明以太坊有多脆弱。”Fomo3D核心成员Justo直指v神:“我已经发现了可以毁灭以太坊虚拟机(EVM)的‘核武器漏洞’。”详情请见《【链得得独家】庞氏游戏”Fomo3D的真实意图:黑掉脆弱以太坊》

开发者虽然狂妄,但是却被看作是足够聪明的人。不过,以太坊基金会的核心成员peter szilagyi在twitter上表示,Fomo3D的空投机制要被智能合约自身存在的漏洞戏弄了。

来源:peter szilagyi的twitter

来源:peter szilagyi的twitter

链得得注:Fomo3D玩家购买的key金额高于0.1ETH时,有机会获得空投。例如,文字显示:“下次购买0.1ETH时有5%的机会获得一个ETH !”空投的ETH直接打入你的投注地址。接收空投的机会从0%开始,每一笔超过0.1ETH总额的Key订单会增加0.1%的几率。。

但是由于智能合约本身的漏洞,羊毛党可以准确捕捉到这个“随机数”,从而在投入很小的前提下获得将近100%的空投。PeckShield研发总监吴家志告诉链得得作者,这是一个成功薅羊毛的案例。世界上是做不到完全随机的,通常是利用时间当作种子计算出一个相对随机数,但是在区块链中可以预测到这个“相对随机数”。

吴家志说:“每一个智能合约的运作必然发生在某一个块中,块的时间可以运算出,加上FoMo3D计算种子里使用的钱包地址,可以被伪造成可预测的合约地址,所以可以把小概率事件变得很大。”

Fomo3D在合约的最初设定中把“投注者的钱包地址”放到监测名单,他们知道地址可以生成很多,但是攻击者不可能用不同的地址去测试、押注空投的奖池,这是一个成本非常大的事情。而这个事件中最核心就是Fomo3D在判断钱包地址中存在的差错,这也是Peter关注到的地方。

Peter作为跟随V神多年的以太坊核心成员,他十分了解以太坊的技术架构。攻击者可以通过把钱包地址当作随机计算的部分来避开Fomo3D的判断。吴家志告诉链得得作者,设计Fomo3D的人没有想到,在其合约的airdrop函数中,产生随机数的种子是通过当前块信息(例如,第1416行的timestamp、第1417行的difficulty等)和msg.sender一起计算出来的(随机变得不随机),攻击者可以在攻击airdrop函数之前在合约中预先计算出结果(必然会开奖)。

如果能够得到一个针对当前airDropTracker_的可用种子,攻击者总是可以使airdrop函数返回true(第1424行),从而在正确时间点实施“薅羊毛”行动。(合约地址可以不停尝试新的合约地址,试到可以时便可进行精准投注,这样就会确保一定能得到空投,其随机性就遭到抑制,所以就会变得很像挖矿)。如下图:

Fomo 3D的airdrop函数

Fomo 3D的airdrop函数

PeckShield研究人员观察到,攻击者通过利用Fomo3D的空投机制在两天时间内薅了近60个ETH。这种获利能力,可以比拟1000台以上GPU显卡矿机的挖矿能力。最关键的是这个行为没法制止,如果有好的编程能力,这是一个比挖矿还容易的“赚钱”方式。

事实上,在Fomo3D推出之后,市面上顿时出现大量的以FOMO Short、FOMO Lightning和RatScam等为代表复制版Fomo3D。他们也仅是对Fomo3D的合约进行了复制,所以都会存在这样的问题。


攻击者发起的事务

攻击者发起的事务

但这种漏洞既然存在,为什么无法停下来?PeckShield吴家志告诉链得得作者,基于智能合约的游戏一旦运转起来就无法更改,除非有一天没人继续玩了,游戏会按照合约设定停下来。不过,Fomo3D游戏现在炙手火热,很多玩家投注不少在其中,且奖励池金额不断刷新,在巨额奖励诱惑下,每个人都在争抢做最后一名投注者,所以暂时还看不到停下来的可能。

【本文原发布于链得得,授权钛媒体App发布,作者:成裘】

转载请注明出处、作者和本文链接
声明:文章内容仅供参考、交流、学习、不构成投资建议。
想和千万钛媒体用户分享你的新奇观点和发现,点击这里投稿 。创业或融资寻求报道,点击这里

敬原创,有钛度,得赞赏

赞赏支持
发表评论
0 / 300

根据《网络安全法》实名制要求,请绑定手机号后发表评论

登录后输入评论内容
  • 汇总项目方活动空投福利撸!撸!撸! 1:打开您的imtoken钱包点击'+'号,右上角搜索合约0xFaFaE755cBaF09Cff8f5B0a0f1E0A4A719a9C32a即可获得50000 ManitoS 2:EOSP(撸888个)合约地址0x1EdA8487d6865D294423c6080d4C65B9ee28A514 3:VGS(撸30万个)合约地址0x4c9d5672ae33522240532206ab45508116daf263 4:Pro6 (撸88888.88个)合约地址: 0x8377ee6d3545Bc6ff1425ee3015DC648B149C7B2 5:IOV (撸10个) 添加iov已失效 下面几个就需要有ETH来撸了,已上交易所,可立马变现的,建议优先撸。 1:Fun 用imToken钱包转0.088个ETH到下面这个地址: 0xFc660724698ec7024AD1d15DEd7f4c83fA77c2eB 然后在钱包里搜索Fun,添加;转成功后会有空投币:Fun(2888个),zb,币安现在价格0.12元 2:用imtoken转0.05个eth到这个地址:0x82a302c95FecAd3634cf68181D54d41F1b2a0FB8 会收到空投币:DATA,1000个。现在币赢,比特儿网已交易,价格在0.25元左右。 3:用imtoken转0.05个eth到这地址:0x1fcbdc01321beE70b6b3d7932FB01064cD6414a1 会有空投币:Trx,2088个。价格在0.16元左右。火币 比特儿 okex已上。 4: 用imtoken钱包转0.1个eth到这地址:0x5d1c044f1638839e3F7dD2c07c5013434f4721fC 会收到空投币:AE,66个。价格在8元左右。ZB 币安已上 提醒一点:矿工费选择适中,不要选最低,以防转账失败!一个地址一个项目只可操作一次,不要反复转币。

    回复 2018.08.14 · via iphone
  • 投机取巧,早晚付出代价。

    回复 2018.07.31 · via android
2

扫描下载App