顺手牵羊?损失约54万美元,Feminist Metaverse被攻击事件分析

成都链安 版主 发布在 成都链安/Beosin
 3721  0

  2022年5月16日,成都链安链必应-区块链安全态势感知平台舆情监测显示,Feminist Metaverse的FmToken合约遭受黑客攻击,黑客获利约1838 WBNB(约54万美元)。据悉,Feminist Metaverse 是一个基于BSC上的DAO项目,成都链安技术团队第一时间对事件进行了分析,结果如下。



#1 事件相关信息


攻击交易(此处只列举出第一笔攻击交易,本次事件中攻击者反复进行了多次操作)

0xfdc90e060004dd902204673831dce466dcf7e8519a79ccf76b90cd6c1c8b320d


攻击者地址

0xaaA1634D669dd8aa275BAD6FdF19c7E3B2f1eF50


攻击合约

0x0B8d752252694623766DfB161e1944F233Bca10F


被攻击合约

0x843528746F073638C9e18253ee6078613C0df0f1

#2 攻击流程


第一步,攻击者地址直接通过SakeSwapPair合约的skim函数领取中未记入流动性池的FM_Token,可能也是在此时意识到FM_Token合约中的漏洞;


第二步,部署攻击合约,用于加快提取FM_Token的速度;


第三步,向攻击合约转入10 FM_Token,为后续攻击做准备;


第四步,调用攻击合约,循环转出FM_Token到攻击者地址,触发将FM_Token合约中FM_Token代币的转移到SakeSwapPair的操作,并最后通过skim函数提取到攻击者地址,细节如下:


(1)多次用创建的攻击合约0x0B8d…a10F给自己的地址转账小额的FM token。



(2)由于FM_Token合约余额已达到向SakeSwapPair转账的标准的15万token,每一次转账会触发920行增加SakeSwapPair的FM token的balance。SakeSwapPair因此出现了token balance和reserve之间的差值。



(3)攻击者随后调用了SakeSwapPair中的skim()函数,将差值的token balance提取到自己的地址。



第五步,用pancakeswap把FM token换成BNB。



最后,重复第4步和第5步,并将最终获利的1838个BNB转入Tornado.Cash


#3 漏洞分析


本次攻击主要利用了直接给SakeSwapPair增加余额,但是没有写入SakeSwapPair的账本,攻击者通过多次转账,将FM_Token合约地址持有的币转移到SakeSwapPair合约中,在整个过程中SakeSwapPair自身的账本中并没有记录转入的代币,导致攻击者直接通过skim把对应的币转移到自己账户下,然后再卖出获利。

#4 资金追踪


截止发文时,截止发文时,被盗资金1838个BNB已经转入Tornado.cash。


#5 总结


针对本次事件,成都链安技术团队建议:


项目开发时,1 不要直接向Pair合约转账;2将非标准代币接入Pair时,应充分考虑代币自定义功能可能对Pair合约产生的影响;3 建议项目上线前选择专业的安全审计公司进行全面的安全审计,规避安全风险。