2020年11月30日,据慢雾区情报,以太坊AMM代币兑换协议SushiSwap遭遇攻击,损失约1.5万美元。慢雾安全团队第一时间介入分析,并以简讯的形式分享,供大家参考。
背景提要
SushiSwap项目中SushiMaker合约的作用是用于存放SushiSwap中每个交易对产生的手续费。其中手续费会以SLP(流动性证明)的形式存放在合约中。SushiMaker合约中有一个convert函数,用于将从每一个交易对中收集的手续费通过调用各自交易对的burn函数获得对应的代币,然后将这些代币转换成sushi代币,添加到SushiBar合约中,为SushiBar中抵押sushi代币的用户增加收益,而此次的问题就出在SushiMaker合约。
攻击流程
1、攻击者选中SushiSwap中的一个交易对,如USDT/WETH,然后添加流动性获得对应的SLP(USDT/WETH流动性证明,以下简称SLP),使用获得的SLP和另外的少量WETH创建一个新的SushiSwap交易对,然后得到新代币池的SLP1(WETH/SLP(USDT/WETH)流动性证明,以下简称SLP1)转入?SushiMaker合约中。
2、调用SushiSwap的convert函数,传入的token0为第一步获得的SLP,token1为WETH。调用convert函数后,SushiMaker合约会调用token0和token1构成的代币池的burn函数燃烧SLP1,燃烧掉攻击者在第一步中打入SushiMaker合约中的SLP1,得到WETH和SLP。
3、SushiMaker合约的convert函数紧接着会调用内部的_toWETH函数将burn获得的代币转换成WETH,由于在第二步SushiMaker合约通过burn获得了SLP和WETH。其中WETH无需转换,只需转换SLP。此时,转换将会通过调用SLP/WETH交易对进行转换,也就是攻击者在第一步创建的交易对。由于SushiMaker合约在转换时会将所有的balanceOf(token0)转换成WETH,这里传入的token0为SLP,于是合约将合约中所有的SLP通过SLP/WETH交易对进行兑换(兑换的SLP包含USDT/WETH交易对每次swap产生的收益和在第二步合约通过burn函数获得的SLP)。而SLP/WETH代币池是攻击者创建的,攻击者只需在初始化的时候添加少量的WETH,就可以在SushiMaker交易对进行兑换的过程中,用少量的WETH换取SushiMaker合约中对应交易对的所有的SLP。
4、攻击者使用burn函数在SLP/WETH交易对中燃烧掉自己的SLP1,拿到大量的SLP和小量的WETH,并继续对其他流动性池重复该过程,持续获利。
总结
攻击者使用SLP和WETH创建一个新的代币池,使用新代币池的SLP1在SushiMaker中进行convert,使用少量的SLP将SushiMaker合约中的所有SLP转到自己创建的代币池中,即将对应交易对一段时间内的所有手续费收入囊中。并对其他交易对重复这个过程,持续获利。
By:??慢雾安全团队
标签:SDTSLPSHISUSHIfoin币可以转usdt吗SLP价格shibmerican币最新排行榜3X Long Sushi Token
这里是IPFS资讯快车,想进filecoin技术交流群的以及与圈内大佬深入沟通,或者了解更多FIL资讯,深入了解FIL的(+V:FIL101).
作为金融市场上最复杂且已经成熟的工具之一,衍生品的魔力无疑是巨大的,其高杠杆等特性,吸引了大量追求高收益的风险偏好交易者,根据国际清算银行的数据显示,在2019年上半年.
尊敬的ZT用户: 根据ETC分叉规则,EthereumClassic在区块高度11,700,000的硬分叉升级,将于2020年11月28日上午10:00暂停ETC充值、提现业务,交易不受影响.
USDT等加密货币,正在变成收取资的“绿色通道”。“相比于微信支付宝转账,加密货币的流动没有可完全证实的信息可查。买卖双方都安全。“一涉人士在自建博客网站上写道.
自从中本聪打包了创世区块获得比特币之后,比特币的挖矿进程就从未停止,随着比特币的价值一路飙升,更是在今年达到了惊人的19825美金.
親愛的BithumbGlobal用戶:BithumbGlobal將在GEM板上線ORAI數位資產服務.