北京时间2023年5月28日,Jimbos protocol遭受闪电贷攻击,攻击者已获利约750万美元。
SharkTeam对此事件第一时间进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。
(相关资料图)
攻击者地址:
0x102be4bccc2696c35fd5f5bfe54c1dfba416a741
攻击合约:
0xd4002233b59f7edd726fc6f14303980841306973
被攻击合约:
0x271944d9D8CA831F7c0dBCb20C4ee482376d6DE7
攻击交易:
0x44a0f5650a038ab522087c02f734b80e6c748afb207995e757ed67ca037a5eda
攻击流程:
1.攻击者(0x102be4bc)通过闪电贷借取10000 枚ETH。
2.随后用ETH在交易池中兑换了大量的Jimbo。
3.攻击者(0x102be4bc)向被攻击合约(0x271944d9)转移了100枚JIMBO代币
4.调用被攻击合约(0x271944d9)的shift函数。
5.循环几次上面的操作:
6.最后将Jimbo兑换为ETH并归还闪电贷,获利离场
漏洞分析:
本次攻击利用了JimboController(0x271944d9)合约中的漏洞,其中的shift函数会让合约执行移除流动性和添加流动性的操作,在添加流动性时JimboController(0x271944d9)合约会发送所有的weth来添加流动性。
攻击者(0x102be4bc)在第二步中使用大量weth换出了流动池中大量的Jimbo币,使池子当中Jimbo的价格很高,这时再调用JimboController(0x271944d9)合约中的shift函数来进行添加流动性的操作,会发送合约中所有的weth到流动池中(包含了合约中原有的weth),这时池子中的weth数量增多但Jimbo的价格仍然很高,攻击者(0x102be4bc)将自己第二步中换出的Jimbo币重新兑换成weth,就可以把池子本身的weth和JimboController(0x271944d9)合约发送的weth一起换出。
事件总结:
本次事件发生原因是由于JimboController(0x271944d9)合约的shift函数中存在漏洞,任何人都可以调用这个函数来使合约为池子添加流动性,并且会发送出合约中所有的weth来添加流动性,无论价格怎么进行操控后都可以用合约来进行接盘。
针对本次攻击事件,我们在开发过程中应遵循以下注意事项:
1. 在开发关于流动性添加和移除函数时,要更加严谨的注意被价格操控的风险。
2. 项目上线前,需要联系第三方专业的审计团队进行智能合约审计。
SharkTeam的愿景是全面保护Web3世界的安全。团队由来自世界各地的经验丰富的安全专业人士和高级研究人员组成,精通区块链和智能合约的底层理论,提供包括智能合约审计、链上分析、应急响应等服务。已与区块链生态系统各个领域的关键参与者,如Polkadot、Moonbeam、polygon、OKC、Huobi Global、imToken、ChainIDE等建立长期合作关系。
官网:https://www.sharkteam.org
Twitter:https://twitter.com/sharkteamorg
Discord:https://discord.gg/jGH9xXCjDZ
Telegram:https://t.me/sharkteamorg
关键词: