本次攻击发生的主要原因是资金池合约初始化函数没有任何鉴权和防止重复调用初始化的限制,攻击者利用漏洞将假币换成真币转出。
原文标题:《狸猫换太子——DODO被黑分析》撰文:慢雾安全团队
据消息,去中心化交易平台DODO的wCRES/USDTV2资金池被黑客攻击,转走价值近98万美元的wCRES和近114万美元的USDT。DODO表示,团队已下线相关资金池建池入口,该攻击仅影响DODOV2众筹池,除V2众筹池之外,其他资金池均安全;团队正在与安全公司合作调查,并努力挽回部分资金。
慢雾安全团队在第一时间跟进并分析,下面将细节分析给大家参考。
慢雾:DOD合约中的BUSD代币被非预期取出,主要是DOD低价情况下与合约锁定的BUSD将产生套利空间:据慢雾区情报,2022 年 3 月 10 日, BSC 链上的 DOD 项目中锁定的 BUSD 代币被非预期的取出。慢雾安全团队进行分析原因如下:
1. DOD 项目使用了一种特定的锁仓机制,当 DOD 合约中 BUSD 数量大于 99,999,000 或 DOD 销毁数量超过 99,999,000,000,000 或 DOD 总供应量低于 1,000,000,000 时将触发 DOD 合约解锁,若不满足以上条件,DOD 合约也将在五年后自动解锁。DOD 合约解锁后的情况下,用户向 DOD 合约中转入指定数量的 DOD 代币后将获取该数量 1/10 的 BUSD 代币,即转入的 DOD 代币数量越多获得的 BUSD 也越多。
2. 但由于 DOD 代币价格较低,恶意用户使用了 2.8 个 BNB 即兑换出 99,990,000 个 DOD。
3. 随后从各个池子中闪电贷借出大量的 BUSD 转入 DOD 合约中,以满足合约中 BUSD 数量大于 99,999,000 的解锁条件。
4. 之后只需要调用 DOD 合约中的 swap 函数,将持有的 DOD 代币转入 DOD 合约中,既可取出 1/10 转入数量的 BUSD 代币。
5. 因此 DOD 合约中的 BUSD 代币被非预期的取出。
本次 DOD 合约中的 BUSD 代币被非预期取出的主要原因在于项目方并未考虑到 DOD 低价情况下与合约中锁定的 BUSD 将产生套利空间。慢雾安全团队建议在进行经济模型设计时应充分考虑各方面因素带来的影响。[2022/3/10 13:48:45]
攻击细节分析
DODO社区提议将200万个DODO迁移到Polygon用于激励计划:1月11日消息,DODO社区上线DIP9治理提案投票,建议将200万个DODO迁移到Polygon用于激励计划。投票时间为2022年1月11日12:00至2022年1月14日12:00。[2022/1/11 8:40:39]
通过查看本次攻击交易,我们可以发现整个攻击过程非常简单。攻击者先将FDO和FUSDT转入wCRES/USDT资金池中,然后通过资金池合约的flashLoan函数借出wCRES和USDT代币,并对资金池合约进行初始化操作。
为何存入FDO和FUSDT代币却能成功借出wCRES和USDT,并且初始化资金池合约呢?是因为资金池的闪电贷功能有漏洞吗?
BoringDAO(BOR)将参与DODO Raptor Program:据官方消息,BoringDAO(BOR)将参与DODO Raptor Program,并开启BOR交易挖矿,vDODO代币持有者可以通过vDODO挖矿计划赚取BOR代币作为奖励。[2021/5/18 22:15:08]
接下来我们对flashLoan函数进行详细分析:
通过分析具体代码我们可以发现,在进行闪电贷时会先通过_transferBaseOut和_transferQuoteOut函数将资金转出,然后通过DVMFlashLoanCall函数进行具体外部逻辑调用,最后再对合约的资金进行检查。可以发现这是正常闪电贷功能,那么问题只能出在闪电贷时对外部逻辑的执行上。
BiKi将于3月16日17:00上线DODO并开启流动性挖矿:据BiKi公告,平台将于3月16日17:00(GMT+8)开放DODO/USDT交易对。
为庆祝DODO上线,将开启DODO流动性挖矿活动,用户通过APP或者PC开启DODO/USDT网格交易,满足条件即可获得网格+流动性挖矿双收益,一键双挖。
DODO是基于PMM主动做市商算法的去中心化交易平台。DODO 通过接入预言机,可以提供比 Uniswap 低 10 倍的滑点。另外 DODO 的特性包括只需要提供单一资产做流动性提供者,从而避免无常损失和持仓风险,而且支持首次资产发行以及闪电交换。[2021/3/16 18:49:22]
通过分析闪电贷的外部逻辑调用,可以发现攻击者调用了wCRES/USDT资金池合约的init函数,并传入了FDO地址和FUSDT地址对资金池合约进行了初始化操作。
到这里我们就可以发现资金池合约可以被重新初始化。为了一探究竟,接下来我们对初始化函数进行具体的分析:
通过具体的代码我们可以发现,资金池合约的初始化函数并没有任何鉴权以及防止重复调用初始化的逻辑,这将导致任何人都可以对资金池合约的初始化函数进行调用并重新初始化合约。至此,我们可以得出本次攻击的完整攻击流程。
攻击流程
攻击者先创建FDO和FUSDT两个代币合约,然后向wCRES/USDT资金池存入FDO和FUSDT代币。接下来攻击者调用wCRES/USDT资金池合约的flashLoan函数进行闪电贷,借出资金池中的wCRES与USDT代币。由于wCRES/USDT资金池合约的init函数没有任何鉴权以及防止重复调用初始化的逻辑,攻击者通过闪电贷的外部逻辑执行功能调用了wCRES/USDT资金池合约的初始化函数,将资金池合约的代币对由wCRES/USDT替换为FDO/FUSDT。由于资金池代币对被替换为FDO/FUSDT且攻击者在攻击开始时就将FDO和FUSDT代币存入了资金池合约,因最终通过了闪电贷资金归还的余额检查而获利。总结
本次攻击发生的主要原因在于资金池合约初始化函数没有任何鉴权以及防止重复调用初始化的限制,导致攻击者利用闪电贷将真币借出,然后通过重新对合约初始化将资金池代币对替换为攻击者创建的假币,从而绕过闪电贷资金归还检查将真币收入囊中。
参考攻击交易:
https://cn.etherscan.com/tx/0x395675b56370a9f5fe8b32badfa80043f5291443bd6c8273900476880fb5221e
免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。
DODO
DODO
DODO是一个由主动做市商算法驱动的去中心化交易平台。它的特点是具有高资本效率的流动性池,支持单边代币的流动性提供,减少无常损失,并能最小化交易滑点。DODO还提供SmartTrade-这是一种去中心化的流动性聚合器服务,通过智能路由支持任意代币之间的最优价格兑换。此外,DODO提供新资产发行平台,可自定义和实时调整资产比例、流动性深度、手续费率等,最大限度的降低了新资产发行的门槛。基于此,DODO开发了众筹建池以及面向专业链上做市商的可定制化灵活技术解决方案。DODO查看更多
NAOSFinance的目标是允许链外借款方通过DeFi协议获取资金,并通过KYC和保险池为贷款方提供风险垫,连接DeFi和链下资产随着DeFi浪潮的兴起,如何解决金融市场绕不开的「信用」问题成为了去中心化应用必须要攻克的难关.
1900/1/1 0:00:00目前,Filecoin网络的FIL代币流通来自于预设释放与存储挖矿。而SAFT和Filecoin团队释放的部分就是预设释放,我们也知道,这部分释放是主网开启时在代码中设定好的。预设释放这部分相对来说比较简单,比例大致为27.5%.
1900/1/1 0:00:00尊敬的虎符用户, 虎符将于2021年03月09日11:00(UTC8)重磅上线ALPACA/USDT交易对。充值已开启,提现将于2021年03月10日10:00(UTC8)开启.
1900/1/1 0:00:00Gate.io“芝麻金融”已上线双币宝理财服务,现已推出BTC、USDT双币投资理财新品,持仓期限3-17天,挂钩参考价格为48000-68000美元,到期结算本金和收益为BTC或USDT.
1900/1/1 0:00:002021年3月9日,一线数字资产交易所和金融服务提供商AAX宣布,正式加入全球数字金融组织GDF。GDF作为一个行业组织机构,着力于促进加密货币、数字资产和金融技术最佳实践和行为准则的采用.
1900/1/1 0:00:00https://v.youku.com/v_show/id_XNTExNzMwNTcwOA==.html美图公司3月7日发公告称已于3月5日购买价值约2.6亿元的以太币和比特币.
1900/1/1 0:00:00