宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > Polygon > 正文

首发 | PancakeBunny闪崩事件最全技术细节剖析

作者:

时间:1900/1/1 0:00:00

5月20日,CertiK安全技术团队发现币安智能链DeFi收益聚合器PancakeBunny遭到闪电贷攻击,发生代币闪崩事件。

此次事件共损失114,631枚BNB和697,245枚BUNNY,按当时价格计算约合约4200万美元。?

经CertiK安全团队调查得出,由于该协议是使用PancakeSwapAMM来进行资产价格计算的,因此黑客恶意利用了闪电贷来操纵AMM池的价格,并利用Bunny在铸造代币的时候计算上的问题成功完成攻击。

攻击是如何发生的?

本次攻击,攻击者总共进行了8笔闪电贷。其中7笔闪电贷来自PancakeSwap流动性池的BNB,另外一笔则来自ForTubeBank的USDT。

技术细节分析

在文中,CertiK安全专家添加了地址标签,使代币的流向更加清晰。

《精灵达人3D》正式首发 Cocos-BCX 主网:据官方消息,近日,由生态合伙人 DAPPX 参与开发的《精灵达人3D》正式首发于游戏公链 Cocos-BCX 主网。《精灵达人3D》是一款以精灵宝可梦为题材的抓宠游戏,游戏美术采用全3D 制作。用户可通过 CocosWallet , DAPPX 或 IMCOCOS 登录 COCOS 主网账号即可体验。截至目前,Cocos-BCX 主网已上线《加密骑士团》《恶龙必须死》《XPEX怪兽世界》《Go Block》《可可夺币》《熊猫运动会》等多款玩法多样的趣味性链游,游戏公链生态在逐步壮大和完善。[2020/8/20]

攻击者的地址:https://bscscan.com/address/0xa0acc61547f6bd066f7c9663c17a312b6ad7e187

攻击者使用的合约地址:https://bscscan.com/address/0xcc598232a75fb1b361510bce4ca39d7bc39cf498

交易一:?

https://bscscan.com/tx/0x88fcffc3256faac76cde4bbd0df6ea3603b1438a5a0409b2e2b91e7c2ba3371a

在第一笔交易中,攻击者完成了两件事:

①将BNB转换成"USDT-BNBFLIP"。

②将"USDT-BNBFLIP"存入BUNNY的池子。

攻击者将FLIP存入资金池,这样当其在后期调用VaultFlipToFlip合约中的Withdraw()或getReward()函数时,资金池将铸造BUNNY代币。

首发 | 嘉楠耘智宣布与Northern Data在AI、区块链等高性能计算领域达成战略合作:据官方消息,2020年2月17日,嘉楠耘智宣布与区块链解决方案及数据中心服务提供商Northern Data AG达成战略合作。本次合作的内容涵盖AI、区块链及数据中心运维等高性能计算领域。

嘉楠耘智拥有丰富的高性能计算专用ASIC芯片研发经验。Northern Data AG则专注于区块链和数据中心等高性能计算基础设施的建设。通过本次战略合作,双方将在AI、区块链等新兴领域进一步释放增长潜能。[2020/2/19]

①"Zap"所做的是将所提供的代币的一半换成一对中的另一个代币,并将两个代币提供给相应的PancakeSwap池。这也可以通过BUNNY的Dapp前端来完成。

②将USDT-BNBFLIP存入池中。

公告 | 火币全球站6月29日16:00全球首发 Project PAI:火币全球站定于新加坡时间6月29日16:00 Project PAI (PAI) 充值业务。7月2日16:00在创新区开放PAI/BTC, PAI/ETH交易。7月6日16:00开放 PAI提现业务。[2018/6/29]

交易二:?

https://bscscan.com/tx/0x897c2de73dd55d7701e1b69ffb3a17b0f4801ced88b0c75fe1551c5fcce6a979

在完成第一笔交易将"USDT-BNBFLIP"存入BUNNY资金池之后,攻击者进行了第二笔交易,这也是大多数人最关注的交易。

接下来把第二笔交易中的发生的所有代币的转移分解成多个部分:

①攻击者从7个不同的PancakeSwap流动性池中利用闪电贷共借了232万BNB,从ForTube用闪电贷款借了296万USDT。

然后攻击者向"USDT-BNB''池提供了7700枚BNB和296万USDT的流动性,获得了14.4万LP代币。

②攻击者将从闪电贷中获得的232万BNB在PancakeSwapV1池中换取了383万USDT。

金色首发 EOS超级节点竞选投票率达6.49%:金色财经数据播报,截止北京时间6月13日15:50,EOS投票率达6.49%。EOS引力区和EOS佳能作为两个来自中国的超级节点竞选团队暂居第五和第六名。其中EOS引力区的得票总数为903万,占比2.96%;EOS佳能的得票总数为877万,占比2.87%。此前异军突起的EOSflytomars暂居第17位,得票总数为630万,占比2.07%。目前跻身前30名的超级节点竞选团队中,有八个团队来自中国。[2018/6/13]

由于V1池的BNB和USDT储备远少于V2池,V1池的价格更容易被操纵,在将BNB换成USDT后,BNB价格急剧下降。

③上文提到攻击者在"交易一?"中把"USDT-BNBFLIP"存到BUNNY池,现在攻击者可以调用"getReward()"函数来铸造BUNNY。

在调用"VaultFlipToFlip"合约中的"getReward()"函数时产生了大量代币转移记录,如截图所示。

IMEOS首发 BM表示EOS合约具有整数溢出保护:据金色财经合作媒体IMEOS报道:近日ETH出现多个ERC20智能合约的处理溢出错误,BM在推特上发表评论:新的ETH契约Bug可能会破坏整个Token的供应,让持有者留下无价值Token.这就算为什么代码不能成为法律,随即表示EOS erc合约不容易受到这种攻击。而EOS官方群也有人表示担忧EOS是否具有整数溢出保护?BM回应:有很多C ++模板类可以封装类型并检查溢出。[2018/4/25]

上图中这个函数发生的细节如下:

?BUNNYMinterV2从USDT-BNBv2池中取出流动性——从池中取出296万USDT和7744枚BNB。

?将USDT换成BNB。在ZapBSC合约中使用的是V1PancakeSwapRouter而不是V2。

由于V1池的价格已经被操纵,攻击者能够将296万USDT换成231万BNB。

然后,一半的BNB被换成BUNNY,另一半的BNB和换来的BUNNY被添加到BNB-BUNNY池中。

现在,大量的BNB被加入到BNB-BUNNY池中,这增加了BNB(reserve0)的数量。

当之后计算要铸造的BUNNY数量时,这将被用来操纵"valueInBNB"变量。

ZapBSC合约地址https://bscscan.com/address/0xf4c17e321a8c566d21cf8a9f090ef38f727913d5#code

?把标记?中移除流动性获得的7700BNB交换一半到BUNNY,并将另一半BNB与BUNNY配对,以提供"BNB-BUNNY"池中的流动性。

注意标记?、?和?发生在"BUNNYMinterV2"合约的"mintForV2"函数中的"_zapAssetsToBUNNYBNB"函数调用。

BunnyMinterV2合约地址:https://bscscan.com/address/0x819eea71d3f93bb604816f1797d4828c90219b5d#code

?从标记?和?产生的所有LP代币都被送到PancakeSwap的BUNNY池中,这是BunnyMinterV2合约中"mintForV2"函数中的这行代码所执行的结果:

"IBEP20(BUNNY_BNB).safeTransfer(BUNNY_POOL,bunnyBNBAmount);"?

如标记?所示,该合约继续执行,铸造了700万的BUNNY。

那么,是什么原因导致合约铸造了这么多的BUNNY?呢?

在bunnyMinterV2合约中,要铸造的BUNNY数量与"valueInBNB"变量有关,该变量是通过`priceCalculator.valueOfAsset(BUNNY_BNB,bunnyBNBAmount)`函数计算得出的。

在函数`valueOfAsset`中,valueInBNB的计算方法是:`valueInBNB=amount.mul(reserve0).mul(2).div(IPancakePair(asset).totalSupply())`

因为在BNB-BUNNY池中有大量的BNB,变量"reserve0"是一个非常大的值,使"valueInBNB"变得很大,所以它最终会增加铸造的BUNNY数量。

④在收到700万的BUNNY后,攻击者在PancakeSwapBNB-BUNNYV1池和V2池中将BUNNY换成BNB。

⑤最后,攻击者向ForTube和PancakeSwap的7个流动性池偿还闪电贷,并将69.7万枚BUNNY和11.4万枚BNB转移到攻击者的地址。

这种攻击奏效的原因之一是"ZapBSC"合约使用PancakeSwapV1流动性池,通过V1PancakeSwapRouter进行代币交换。

很多DeFi项目无法从PancakeSwapV1过渡到V2,因为它们在合约中把PancakeSwapRouter和池子的地址写死为V1的地址。

由于V1流动性池已经被放弃,它们的池子中代币的储备量很低,这使得攻击者更容易操纵其中的代币价格。

写在最后

当前的加密世界中,这样的闪电贷攻击和恶意价格操纵必然不会是最后一次。

CertiK建议DeFi项目将其PancakeSwap集成从V1迁移到V2。

同时也可使用时间加权平均价格来避免价格异常波动所带来的损失,以此防范黑客利用闪电贷攻击价格预言机。

迄今为止,CertiK已进行了超过700次的审计,保护了超过300亿美元的数字资产与软件系统免受安全损失。

欢迎搜索点击CertiK公众号底部对话框,留言免费获取咨询及报价!

标签:BNBBUNBUNNYUNNbnb币涨了多少倍BUNI币Rewards BunnyPOLYBUNNY价格

Polygon热门资讯
《科创板日报》:史上最严禁令来袭:这29家上市公司涉及虚拟货币挖矿 风险何在?

来源:《科创板日报》 记者冯军徐赐豪 25日晚间,内蒙古发改委对外公布了《内蒙古自治区发展和改革委员会关于坚决打击惩戒虚拟货币“挖矿”行为八项措施(征求意见稿)》,面向社会公开征求意见.

1900/1/1 0:00:00
两个小时万亿美金灰飞烟灭,加密货币为什么能瞬间腰斩?

如果长期沉浸在全球二级市场,会发现,以科技资产为主的纳斯达克指数在一个月前就已经达到了相对高点,开始下探。而包括像特斯拉这些曾经的科技龙头也早已从高点回调了超过30%。今天终于轮到比特币了.

1900/1/1 0:00:00
金色前哨 | 马斯克提议组建比特币挖矿委员会

中国政府近日宣布将打击比特币挖矿和交易,人们担心比特币算力最终也将去中国化,中国将在比特币矿业领域也将是去控制权。现在马斯克正携美国大矿业公司开始谋划布局了。人们的担心或正在成为现实.

1900/1/1 0:00:00
融资新闻 | SubDAO完成新一轮融资,Kernel Ventures及众多知名机构参与

SubDAO正式完成新一轮融资,本轮融资由Hypersphere、HuobiVentures、KernelVentures、OKExBlockdreamVentures、CMSHoldings、SignumCapital、NGCVen.

1900/1/1 0:00:00
内蒙古自治区打击惩戒虚拟货币“挖矿”行为八项措施(征求意见稿)

按照国务院金融稳定发展委员会第51次会议关于打击比特币挖矿和交易行为的部署要求,严格落实《内蒙古自治区关于确保完成“十四五”能耗双控目标任务若干保障措施》,进一步清理虚拟货币“挖矿”行为,强化打击惩戒力度,构建长效监管机制.

1900/1/1 0:00:00
金色前哨 | 内布拉斯加州批准数字资产银行框架:促进加密货币交易

5月26日消息,美国内布拉斯加州州长办公室正式签署数字资产银行框架法案,该立法为加密货币银行建立州宪章,此前已相继获得参议员投票通过和州议会批准。该法案允许银行向拥有比特币和其他数字资产的客户提供服务.

1900/1/1 0:00:00