DCF 代币于2024年11月24日遭受攻击,攻击造成的损失约为40万美元。攻击的根本原因是在添加流动性时缺乏滑点保护。
概述
攻击者:https://bscscan.com/address/0x00c58434f247dfdca49b9ee82f3013bac96f60ff
漏洞合约:https://bscscan.com/address/0xA7e92345ddF541Aa5CF60feE2a0e721C50Ca1adb
攻击交易:https://bscscan.com/tx/0xb375932951c271606360b6bf4287d080c5601f4f59452b0484ea6c856defd6fd
攻击分析
DCF 代币合约在出售时收取5%的代币作为手续费,并自动将手续费兑换成 USDT 并购买 DCT 添加到 USDT-DCT 流动性池中。
问题在于合约中的所有买入/卖出操作都缺乏滑点价格保护(最小接收金额设置为0)。攻击者使用闪电贷购买 DCT 和 DCF 代币,操纵其价格大幅上涨。然后,他们转入少量 DCF 代币以触发手续费,随后将其出售为 USDT。
由于没有滑点保护,合约以极高的价格将 USDT 兑换为 DCF 并将流动性添加回交易对。攻击者随后以较高价格出售他们购买的所有 DCF 和 DCT 代币,偿还闪电贷并获利。
经验教训
在使用 Uniswap 协议时,滑点保护非常重要。没有滑点保护的自动买卖代币的合约是攻击者的理想目标,因为他们可以轻松对自动交易进行三明治攻击,利用价格波动获利。在交换时务必使用滑点保护,并尽可能避免在合约中实施自动买卖功能。
强烈建议进行安全审计,无论是简单的 ERC20 合约还是有数十万行代码的复杂 DeFi 协议。