Fire Token 事件分析

本文为机器翻译
展示原文

在2024年10月1日,Fire代币遭到攻击,导致损失约20,000美元。让我们来了解一下这次攻击的具体细节。

攻击者: https://etherscan.io/address/0x81f48a87ec44208c691f870b9d400d9c13111e2e

攻击合约: https://etherscan.io/address/0x9776c0abe8ae3c9ca958875128f1ae1d5afafcb8

漏洞合约: https://etherscan.io/address/0x18775475f50557b96C63E8bbf7D75bFeB412082D

攻击交易: https://etherscan.io/tx/0xd20b3b31a682322eb0698ecd67a6d8a040ccea653ba429ec73e3584fa176ff2b

漏洞分析

Fire代币是一种ERC20代币。Fire代币的特点是集成了Uniswap v2的代币交换功能。此外,_transfer()函数也被修改为使用该功能。

但问题在于,当将代币转移到Uniswap交易对时,_transfer()函数存在漏洞。如果用户将代币转移到Uniswap交易对,Uniswap交易对的余额会自动减少,并且紧接着会调用sync()函数。这是因为系统根据转账金额和税额计算出售金额,然后将该出售金额转移到死亡地址。

Transfer funtion

任何用户都可以将多个Fire代币转移到Uniswap交易对。由于_transfer()中存在这个条件,Uniswap交易对的数量将减少,导致储备价值下降。攻击者首先将20 ETH兑换成Fire代币,然后将所有收到的代币转移到Uniswap交易对。由于一部分Fire代币被转移到死亡地址,Fire代币的储备价值也随之降低。

Transfer funtion

之后,攻击者使用Uniswap交易对的swap()功能,根据储备价值的差异获得更多代币。他重复这个操作,直到储备价值降到最低。

Transfer funtion
Transfer funtion

通过这种漏洞利用,攻击者获得了约8.45 ETH(约20,000美元)。

结论

通过分享对Fire代币漏洞的见解,这突出了彻底的安全审计和健壮的智能合约设计的关键需求,以防止去中心化交易所中的操纵行为。必须制定有效的风险缓解策略,以保护DeFi系统中的用户资金,因为即使是微小的缺陷也可能导致重大的经济损失。

来源
免责声明:以上内容仅为作者观点,不代表Followin的任何立场,不构成与Followin相关的任何投资建议。
喜欢
收藏
评论