零时科技 || SATX攻击事件分析

黑客通过两次尝试,成功利用SATX Token的漏洞在PancakeSwap上进行链上攻击,最终获利约50BNB。攻击中利用了TornadoCash的资金,通过复杂的交易操作和合约功能(如skim和sync),显著提高了SATX的价值,并通过交换平台将其转换为WBNB。

顶部banner2.jpg

背景介绍

<!--StartFragment-->

监控到一起的针对SATX Token的链上攻击事件https\://bscscan.com/tx/0x7e02ee7242a672fb84458d12198fae4122d7029ba64f3673e7800d811a8de93f 

黑客总共发起了两次攻击:

<!--EndFragment-->

1.png <!--StartFragment-->

第一次攻击https\://bscscan.com/tx/0x3c6eb46bc7203c4996ed0886f25bec3d806000506dea2f2778df374380014105

失败,因为在调用攻击合约的时候没有转入BNB ,导致在执行BNB兑换为WBNB失败交易回滚。

<!--EndFragment-->

2.png <!--StartFragment-->

第二次攻击成功。

黑客的初始资金均来自于TornadoCash,

<!--EndFragment-->

3.png

<!--StartFragment-->

有趣的是攻击者的攻击合约函数名为f***you。

<!--EndFragment-->

4.png

攻击及事件分析

<!--StartFragment-->

<!--StartFragment-->

首先,攻击者通过PancakeSwap将0.001 WBNB兑换为13.397690168956297175 SATX。随后,利用PancakeSwap Pair WBNB-CAKE 兑换60 WBNB

<!--EndFragment-->

5.png

<!--StartFragment-->

接着,在回调函数中再用0.0001 WBNB兑换 350018.558642186154111639 SATX(在回调函数中又转入了52 WBNB)。

<!--EndFragment-->

6.png <!--StartFragment-->

接着,又将兑换来的350018.558642186154111639 SATX转入PancakeSwap Pair WBNB-SATX ,导致资金不平衡。然后,攻击者通过调用skim和sync平衡资金的同时从而完成对漏洞的利用。

<!--EndFragment-->

7.png

<!--StartFragment-->

由上图可以看到,通过skim本应从 PancakeSwap Pair中转出350018.558642186154111639 SATX来平衡资金,但是却多转了一倍的SATX 。 

通过查看SATX Token合约的代码,我们可以看到transfer中的这段代码。首先,将amount转给了_tokenOwner,

<!--EndFragment-->

8.png

<!--StartFragment-->

接下来,将amount的2.99%转给了SATX Token合约,将amout的97.01%除以1000000的10%,9%和8.3%分别转给了三个EOA。

<!--EndFragment-->

9.png

10.png

<!--StartFragment-->

相当于额外转出了约一倍的SATX ,导致PancakeSwap Pair WBNB-SATX中的SATX 骤减,由于PancakeSwapV2使用的CPMM作为AMM算法,所以相当于SATX的价值飙升。 

执行skim前,1 WBNB=13844 SATX,执行 skim后,1 WBNB=33 SATX。导致SATX价值飙升600多倍。

<!--EndFragment-->

11.png <!--StartFragment-->

随后,攻击者就用手中的SATX通过swap兑换为WBNB。通过此次攻击,攻击者共获利约50BNB

<!--EndFragment-->

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
零时科技
零时科技
0xbD0b...A354
专注区块链生态安全