狸猫换太子——DODO 被黑分析

据消息,去中心化交易平台DODO的wCRES/USDTV2资金池被黑客攻击,转走价值近98万美元的wCRES和近114万美元的USDT。DODO表示,团队已下线相关资金池建池入口,该攻击仅影响DODOV2众筹池,除V2众筹池之外,其他资金池均安全;团队正在与安全公司合作调查,并努力挽回部分资金。更多后续消息请关注DODO官方社群公告。

慢雾安全团队在第一时间跟进并分析,下面将细节分析给大家参考。

Yuga Labs官方发布Dookey Dash计分系统更新及分数计算规则:金色财经报道,Yuga Labs 官方网站已更新 Dookey Dash 游戏的常见问题解答页面并发布积分分数计算规则,BAYC 指出,玩家分数取决于多种因素,包括在跑步中的存活时间、沿途拾取的碎片(fragment)类型和摧毁的障碍物。碎片类型和积分点值为:普通(Common)=300、罕见(Uncommon)=500、稀有(Rare)=1000、史诗(Epic)=1500、传奇(Legendary)=2000。

BAYC 还称,不同的下水道通行证等级将决定玩家在游戏中获得的“奖金”,“玩家在下水道内待的时间越长,收集的碎片越多越稀有,积分就会越多”,持有不同等级的下水道通行证的玩家还将获得不同比例的积分奖励,分别是:四级:30%奖励、三级:20%奖励、二级:10%奖励、一级:没有奖励。

此外,BAYC 还表示,如果下水道通行证持有人以 2 APE 价格购买游戏增强包“Powershart Pack”,还可以获得不同比例的积分奖励,分别是:四级:45%奖励、三级:35%奖励、二级:25%奖励、一级:15%奖励。[2023/1/19 11:21:13]

攻击细节分析

火必与多米尼克联合推出国家代币DMC 加速推进全球化战略:11月29日消息,根据火必Huobi官方发布的公告,火必Huobi、波场TRON、DMC Labs与多米尼克国达成政府层面最高级别合作,受权联合推出多米尼克国家代币(DMC,Dominica Coin)和数字身份(DID)。这是火必完成品牌升级后,在全球化发展等新战略扩张中公布的首个重磅合作,意味火必在创建全球Web3.0门户的新征程中迈出坚实一步,引领和推动元宇宙数字身份时代的到来。

DMC是基于TRC-20协议发行的代币,将通过火必Prime正式发售,DMC的持有者将被授予多米尼克国家数字身份,在数字世界享有公民待遇。DMC的用途场景包括:主流交易平台的KYC身份认证、在当地开设银行账户、申请信用贷款、注册数字服务公司等。[2022/11/29 21:09:36]

通过查看本次攻击交易,我们可以发现整个攻击过程非常简单。攻击者先将FDO和FUSDT转入wCRES/USDT资金池中,然后通过资金池合约的flashLoan函数借出wCRES和USDT代币,并对资金池合约进行初始化操作。

Game Space成立新基金GameFi Future Fund,初始规模1000万美元:11月4日消息,“GameFi即服务”平台Game Space宣布成立新基金GameFi Future Fund,初始规模为1000万美元,该基金将专注于下一代GameFi 3.0行业,主要投资和孵化GameFi和NFT、PFP、DID项目,旨在帮助优质项目在基础设施、营销、运营和交易等方面发展。(ambcrypto)[2022/11/4 12:16:41]

Cool Cats Group任命迪士尼资深人士Stephen Teglas为首席执行官:金色财经报道,蓝筹NFT项目Cool Cats 母公司Cool Cats Group LLC今天宣布, Stephen Teglas已加入公司担任首席执行官。在过去的25年中,斯蒂芬一直致力于为华特迪士尼公司和华纳兄弟公司领导消费品品牌管理和商业化,最近在NFT技术公司RECUR领导品牌合作伙伴关系。

作为首席执行官,Teglas将利用他丰富的领导经验来执行Cool Cats的使命,成为全球最大的NFT品牌和媒体公司。该公司将通过在动画内容、游戏、现场活动、消费品和出版领域等方面的合作,将Cool Cats品牌带给全球粉丝。(prnewswire)[2022/9/22 7:12:30]

为何存入FDO和FUSDT代币却能成功借出wCRES和USDT,并且初始化资金池合约呢?是因为资金池的闪电贷功能有漏洞吗?

接下来我们对flashLoan函数进行详细分析:

通过分析具体代码我们可以发现,在进行闪电贷时会先通过_transferBaseOut和_transferQuoteOut函数将资金转出,然后通过DVMFlashLoanCall函数进行具体外部逻辑调用,最后再对合约的资金进行检查。可以发现这是正常闪电贷功能,那么问题只能出在闪电贷时对外部逻辑的执行上。

通过分析闪电贷的外部逻辑调用,可以发现攻击者调用了wCRES/USDT资金池合约的init函数,并传入了FDO地址和FUSDT地址对资金池合约进行了初始化操作。

到这里我们就可以发现资金池合约可以被重新初始化。为了一探究竟,接下来我们对初始化函数进行具体的分析:

通过具体的代码我们可以发现,资金池合约的初始化函数并没有任何鉴权以及防止重复调用初始化的逻辑,这将导致任何人都可以对资金池合约的初始化函数进行调用并重新初始化合约。至此,我们可以得出本次攻击的完整攻击流程。

攻击流程

1、攻击者先创建FDO和FUSDT两个代币合约,然后向wCRES/USDT资金池存入FDO和FUSDT代币。

2、接下来攻击者调用wCRES/USDT资金池合约的flashLoan函数进行闪电贷,借出资金池中的wCRES与USDT代币。

3、由于wCRES/USDT资金池合约的init函数没有任何鉴权以及防止重复调用初始化的逻辑,攻击者通过闪电贷的外部逻辑执行功能调用了wCRES/USDT资金池合约的初始化函数,将资金池合约的代币对由wCRES/USDT替换为FDO/FUSDT。

4、由于资金池代币对被替换为FDO/FUSDT且攻击者在攻击开始时就将?FDO和FUSDT代币存入了资金池合约,因最终通过了闪电贷资金归还的余额检查而获利。

总结

本次攻击发生的主要原因在于资金池合约初始化函数没有任何鉴权以及防止重复调用初始化的限制,导致攻击者利用闪电贷将真币借出,然后通过重新对合约初始化将资金池代币对替换为攻击者创建的假币,从而绕过闪电贷资金归还检查将真币收入囊中。

参考攻击交易:

https://cn.etherscan.com/tx/0x395675b56370a9f5fe8b32badfa80043f5291443bd6c8273900476880fb5221e

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

[0:78ms0-2:59ms