USD:狸猫换太子?慢雾拆解DODO被黑细节

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

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

攻击细节分析

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

报告:2022-2027年间,Web 3.0区块链市场的潜在增长差值为274.2亿美元:金色财经报道,Technavio新近发布了Web3.0区块链市场预测与分析报告。报告显示,2022-2027年间,Web3.0区块链市场的潜在增长差值为274.2亿美元。Web3.0中的区块链技术正在获得更多资金。系统配置问题是阻碍Web3.0区块链市场增长的关键挑战之一。BFSI细分市场预计在预测期内将出现显着增长。Web3.0区块链广泛应用于BFSI领域的金融信贷服务,包括借贷以及安全确认信用记录。代币被多家投资机构广泛用于证券、债券和其他资产。

预计在预测期内,北美将为全球市场的增长贡献40%。[2023/9/9 13:28:09]

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

Gala Games:年底前将Gala平台全面迁移至Gala Chain:9月4日消息,Gala Games发推称,年底前将Gala平台全面迁移至Gala Chain,并简化使用门槛与开发工具以便在年底前为外部团队提供全面的自助服务。[2023/9/4 13:16:12]

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

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

Bernstein:香港的加密监管方式可能会吸引资本和人才流向亚洲:金色财经报道,市场分析机构Bernstein在周一发布的研究报告中表示,中国香港证券及期货事务监察委员会(SFC)对加密货币采取通过监管实现保护的做法,这与美国最近通过执法进行监管的行动形成了鲜明对比。这可能是加密货币行业的一个关键岔路口,可能会导致资本和人才流向亚洲,使其成为加密中心。

香港证监会周一公布虚拟资产交易平台的拟议规则,并正在征求公众意见。它计划允许散户投资者在受到限制的情况下访问持牌交易所,理由是投资者更适合在持牌交易所交易,而不是通过离岸和不受监管的平台进行交易。加密衍生品交易目前仍不在讨论范围内,因为香港证监会已将允许此类工具交易的决定推迟至稍后时间。新的许可制度预计将于6月1日生效,现有的加密交易所将有12个月的过渡期。尚未在香港运营的交易所在开始交易前必须完全合规。(CoinDesk)[2023/2/21 12:20:12]

通过分析闪电贷的外部逻辑调用,可以发现攻击者调用了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:62ms0-3:314ms