2025年3月14日,H2O代币遭受了一次攻击,导致损失约22,000美元。让我们来研究这次攻击是如何发生的。
攻击者:https://bscscan.com/address/0x8842dd26fd301c74afc4df12e9cdabd9db107d1e
感谢阅读!免费订阅以接收新帖并支持我的工作。
攻击合约:https://bscscan.com/address/0x03ca8b574dd4250576f7bccc5707e6214e8c6e0d
漏洞合约:https://bscscan.com/address/0xe9c4d4f095c7943a9ef5ec01afd1385d011855a1#code
攻击交易:https://bscscan.com/tx/0x729c502a7dfd5332a9bdbcacec97137899ecc82c17d0797b9686a7f9f6005cb7
https://bscscan.com/tx/0x994abe7906a4a955c103071221e5eaa734a30dccdcdaac63496ece2b698a0fc3
攻击分析
H2O是一种基于基本ERC20标准的BEP-20代币。该代币结合了H2和O2代币。H2O的一个关键特征是其transfer()
实现中存在逻辑缺陷——当从交易对转移代币时,名为_calulate
的机制使得可以铸造额外的H2或O2代币。
系统首先计算一个与用户H2O余额成比例的评级金额——余额越高,评级越高。随后,H2和O2代币以getRandomOnchain
函数确定的随机数量被铸造。
结论:
该漏洞的产生是因为H2O代币合约在设计从PancakeSwap交易对购买的机制时,未考虑到skim
可以在修改ERC20转账函数的同时达到相同效果,从而导致了攻击。
感谢阅读!免费订阅以接收新帖并支持我的工作。