By:慢雾安全团队
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转到自己创建的代币池中,即将对应交易对一段时间内的所有手续费收入囊中。并对其他交易对重复这个过程,持续获利。
往期回顾
假钱换真钱,揭秘PickleFinance被黑过程
闪电贷重入攻击,OUSD损失700万美金技术简析
如何使用闪电贷从0撬动百万美元?ValueDeFi协议闪电贷攻击简要分析
无中生有?DeFi协议Akropolis重入攻击简析
Acala创世已通过慢雾科技安全审计
慢雾导航
慢雾科技官网
https://www.slowmist.com/
慢雾区官网
https://slowmist.io/
慢雾GitHub
https://github.com/slowmist
Telegram
https://t.me/slowmistteam
https://twitter.com/@slowmist_team
Medium
https://medium.com/@slowmist
币乎
https://bihu.com/people/586104
知识星球
https://t.zsxq.com/Q3zNvvF
火星号
http://t.cn/AiRkv4Gz
链闻号
https://www.chainnews.com/u/958260692213.htm
本文来源于非小号媒体平台:
慢雾科技
现已在非小号资讯平台发布68篇作品,
非小号开放平台欢迎币圈作者入驻
入驻指南:
/apply_guide/
本文网址:
/news/9558993.html
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场
上一篇:
币安为何推出第三条链?这对BNB意味着什么?
币价新高,挖矿难度却小幅波动这段时间比特币价格创新高,使得很多人都关注到矿圈,但是在比特币挖矿算力和难度的调整来看,除了11月19号的难度调整难度涨幅8%之后,直到现在挖矿难度却波动较小.
尊敬的用户: CoinBene将上线FAR/USDT币币交易,邀您体验。FAR充值时间:2020年12月23日10:30FAR交易时间:2020年12月23日11:00FAR提现时间:2020年.
ETH从2013年诞生至今已经有7年了,这在数字货币中是一个很长的年龄史。经过多年的积累,ETH被人们认为是未来可能让区块链技术真正落地的项目.
Filecoin是一个去中心化的存储网络,它是运行在IPFS上的激励层,通过区块链的Token激励模型让全球更多的矿工参与到filecoin网络中,为用户提供分布式存储和检索服务.
目前100000人已关注加入我们扫一扫下载全网最新数据报告 查看完整报告请阅读全文 查看完整报告请阅读全文 以上资料均从网络公开资料收集整理而成.
先来了解:什么是矿工、挖矿?玩过区块链的朋友就知道,在大多数区块链协议中,“矿工”是指网络上的参与者,他们负责保持区块链的有效性和安全性.