北京时间2022年4月13日凌晨0点49分,CertiK审计团队监测到ElephantMoney被攻击,导致27,416.46枚BNB遭受损失。
下文CertiK安全团队将从该项目攻击操作及合约等方面为大家详细解读并分析。请大家注意识别风险,谨慎投资!
攻击步骤
攻击者利用了TRUNK代币的赎回机制,通过操纵价格预言机以赎出更多的代币,并从一个Treasury合约中窃取了ELEPHANT。该Treasury合约是一个未经验证的合约。
①攻击者部署了一个攻击者合约,并使用闪电贷从多个pair池中借取了WBNB和BUSD。
②大部分被借来的WBNB被换成了ELEPHANT,以提高ELEPHANT的价格。
③随着ELEPPHANT价格的提高,攻击者的合约触发了ElephantMoney中一个未经验证合约的铸币方法。
借贷的BUSD被放置到该合约上,以铸造TRUNK。
部分的BUSD被换成了ELEPHANT。由于ELEPHANT的价格在上一步中被提高了,所以换来的ELEPHANT的数量比预期的要少。
所有的代币被发送到Treasury合约。
④攻击者合约将ELEPHANT掉包成了WBNB,以降低ELEPHANT的价格。
⑤随着ELEPHANT价格的降低,攻击合约触发了ElephantMoney未经验证的合约的赎回。
在步骤③中铸造的TRUNK代币被烧毁。
大约6千万单位的BUSD和64兆单位的ELEPHANT从Treasury合约中被提取出来,发送到攻击者合约中。由于攻击者对价格进行了操纵,提取的ELEPHANT的数量远远大于步骤③中存入的ELEPHANT的数量。
⑥攻击者重复了这个过程,从Treasury合约中盗走了更多的ELEPHANT。⑦随后攻击者将盗窃代币交易卖出,偿还了闪电贷,并从攻击者合约中提取了利润。
合约漏洞分析
未经验证的合约(0xd520a3b)使用Uniswappair池作为价格预言机,因此预言机可被操纵。
目前总受窃资产约为7198万元人民币。详情请复制链接至浏览器查看:https://twitter.com/PeckShieldAlert/status/1514145304253120515
该次事件可通过安全审计发现相关风险。
使用pair池作为价格预言机导致价格操纵攻击是一个常见问题,因此安全审计可避免类似的风险。
在此,CertiK的安全专家建议:
尽量避免使用流动性低的池子作为价格预言机价格来源,同时对项目进行安全审计从而保证预言机模型的正确性
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。