AIZPT代币在2024年10月5日遭受了一次攻击,导致当时约20,000美元的损失。攻击的根源在于在代币购买过程中,价格计算的实现存在问题。
概述
攻击者合约: https://bscscan.com/address/0x8408497c18882bfb61be9204cfff530f4ee18320
漏洞合约: https://bscscan.com/address/0xbe779d420b7d573c08eee226b9958737b6218888
攻击交易: https://bscscan.com/tx/0x5e694707337cca979d18f9e45f40e81d6ca341ed342f1377f563e779a746460d
攻击分析
AIZPT代币合约允许用户直接买卖代币,买入时收取50%的费用,卖出时销毁50%的代币。
问题出在买入代币时使用的公式。他们使用了Uniswap V2的quote函数公式。这个函数适用于理解储备比率或流动性,但不适合确定实际交易价格。
使用这个公式,用户可以通过以低价买入代币,然后使用Uniswap V2的getAmountOut公式以高价卖出代币来获利(即使要支付50%的费用)。
攻击者闪电贷了8000 BNB,用它来购买AIZPT代币。然后多次卖出这些代币,获得了34.88 BNB的利润。
经验教训
开发人员在将第三方合约集成到自定义逻辑中时,必须彻底审查和理解其逻辑,以防止任何不一致。
强烈建议进行安全审计,无论是简单的ERC20合约还是复杂的DeFi协议,都应该进行审计。