重入攻击:Uniswap V3流动性协议Visor Finance被黑事件分析

  • SharkTeam
  • 更新于 2022-03-03 16:31
  • 阅读 2710

Uniswap V3流动性管理协议Visor Finance遭受攻击,总损失约为820万美元

北京时间12月21日晚上10点18分,Uniswap V3流动性管理协议Visor Finance遭受攻击,总损失约为820万美元。

SharkTeam第一时间对此事件进行了攻击分析和技术分析,并总结了安全防范手段,希望后续的区块链项目可以引以为戒,共筑区块链行业的安全防线。

一、事件分析

攻击过程如下: image.gif

image.gif

1.部署攻击合约

交易:0xbe65cb0dd9f4619939cfeb56b3ef3a996e2b028b93fd66443abfa06d6df8e58d

攻击合约:0x10C509AA9ab291C76c45414e7CdBd375e1D5AcE8

2.发起攻击

攻击交易为0x69272d8c84d67d1da2f6425b339192fa472898dce936f24818fda415c1c1ff3f,详细的攻击过程如下:

image.gif

在攻击过程中,发生了重入攻击,而且发生在deposit函数中,deposit函数如下: image.gif

调用deposit函数的合约是攻击合约,参数如下:

image.gif

visrDeposit是存入的指定Token的数量,from是攻击合约,to是攻击者账户地址。

交易0x27f2210536553392cf180c0b37055b3dc92094a5d585d7d2a51f790c9145e47c 将攻击合约中的owner 修改为攻击合约。 image.gif

因此可以通过owner地址的校验,然后在调用攻击合约中的delegatedTransferERC20函数时发生重入攻击,再次调用了deposit函数且参数不变,从而重复铸造了97624975 vVISR的份额代币。

image.gif

3.提取Token

交易:0x6eabef1bf310a1361041d97897c192581cd9870f6a39040cd24d7de2335b4546 image.gif

由195249950 vVISR的份额代币提取出8812958 VISR。

4.兑换Token

利用UniswapV2 将 VISR 兑换成 ETH。

image.gif

以交易0x86d2689eeb9b1dd233e6a9ab62ffa16ecdedff55ea5f6f10571432cf9830d907为例,将300000 VISR 兑换成 32.93 WETH。

image.gif

5.混币

通过Tornado平台进行混币。

image.gif

本次Visor Finance被攻击的根本原因在于deposit函数调用合约校验逻辑出现漏洞,建议合约中使用白名单机制,限制合约调用地址。另外,关键函数如deposit必须添加重入锁,比如使用openzeppelin的ReentrancyGuard,防止重入攻击。

二、安全建议

SharkTeam提醒您,在涉足区块链项目时请提高警惕,选择更稳定、更安全,且经过完备多轮审计的公链和项目,切不可将您的资产置于风险之中,沦为黑客的提款机。

SharkTeam作为领先的区块链安全服务团队,为开发者提供智能合约审计服务。智能合约审计服务由人工审计和自动化审计构成,满足不同客户需求,独家实现覆盖高级语言层、虚拟机层、区块链层、业务逻辑层四个方面近两百项审计内容,全面保障智能合约安全。 Twitter:https://twitter.com/sharkteamorg

Telegram:https://t.me/sharkteamorg

更多区块链安全资讯与行业分析,点击下方链接查看 D查查|链上风险核查

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

0 条评论

请先 登录 后评论
SharkTeam
SharkTeam
SharkTeam是领先的Web3安全服务提供商,提供智能合约审计、链上分析和应急响应服务。 Web: https://www.sharkteam.org Telegram: https://t.me/sharkteamorg Twitter:https://twitter.com/sharkteamorg