背景介绍
监控到一起的针对SATX Token的链上攻击事件https://bscscan.com/tx/0x7e02ee7242a672fb84458d12198fae4122d7029ba64f3673e7800d811a8de93f
黑客总共发起了两次攻击:
第一次攻击https://bscscan.com/tx/0x3c6eb46bc7203c4996ed0886f25bec3d806000506dea2f2778df374380014105
失败,因为在调用攻击合约的时候没有转入BNB ,导致在执行 BNB 兑换为 WBNB 失败交易回滚。
第二次攻击成功。
黑客的初始资金均来自于TornadoCash,
有趣的是攻击者的攻击合约函数名为 f***you。
攻击及事件分析
首先,攻击者通过 PancakeSwap 将0.001 WBNB兑换为13.397690168956297175 SATX。随后,利用 PancakeSwap Pair WBNB-CAKE 兑换60 WBNB。
接着,在回调函数中再用0.0001 WBNB兑换 350018.558642186154111639 SATX(在回调函数中又转入了52 WBNB)。
接着,又将兑换来的 350018.558642186154111639 SATX 转入 PancakeSwap Pair WBNB-SATX ,导致资金不平衡。然后,攻击者通过调用 skim 和 sync 平衡资金的同时从而完成对漏洞的利用。
由上图可以看到,通过 skim 本应从 PancakeSwap Pair 中转出 350018.558642186154111639 SATX 来平衡资金,但是却多转了一倍的 SATX 。
通过查看 SATX Token 合约的代码,我们可以看到 transfer 中的这段代码。首先,将 amount 转给了_tokenOwner,
接下来,将 amount 的2.99%转给了 SATX Token 合约,将 amout 的 97.01% 除以 1000000 的 10%,9% 和 8.3% 分别转给了三个 EOA。
相当于额外转出了约一倍的 SATX ,导致 PancakeSwap Pair WBNB-SATX 中的 SATX 骤减,由于 PancakeSwapV2 使用的 CPMM 作为 AMM 算法,所以相当于 SATX 的价值飙升。
执行 skim 前,1 WBNB=13844 SATX,执行 skim 后,1 WBNB=33 SATX。导致 SATX 价值飙升 600 多倍。
随后,攻击者就用手中的 SATX 通过 swap 兑换为 WBNB。通过此次攻击,攻击者共获利约50BNB。
END
往期回顾
点击阅读全文 立刻直达官网
/www.noneage.com/
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。