DeFi协议Revest Finance遭到黑客攻击损失约12万美元

ERC1155的重入攻击又“现身”:Revest Finance被攻击事件简析

2022年3月27日,成都链安链必应-区块链安全态势感知平台舆情监测显示,DeFi协议Revest Finance遭到黑客攻击,损失约12万美元。

据悉,Revest Finance是针对DeFi领域的staking的解决方案,用户通过Revest Finance参与任何DeFi的staking,都可以直接创建生成一个NFT(该NFT包含了这个staking仓位的当前以及未来价值)。

在攻击发生之后,项目方官方发推表示他们以太坊合约遭受了攻击,目前已采取措施确保所有链中的剩余资金安全。

成都链安技术团队对此事件进行了相关简析。


1 分析如下

地址列表

Token合约:

0x56de8BC61346321D4F2211e3aC3c0A7F00dB9b76

被攻击合约:

0x2320a28f52334d62622cc2eafa15de55f9987ed9

攻击合约:

0xb480Ac726528D1c195cD3bb32F19C92E8d928519

攻击者:

0xef967ECE5322c0D7d26Dab41778ACb55CE5Bd58B

交易截图

首先攻击者通过uniswapV2call 2次调用受攻击的目标合约中的mintAddressLock函数。

该mintAddressLock函数用于查询并向目标铸造NFT,并且nextid(FNFTHandler.fnftsCreated)会在铸造NFT后进行更新。

攻击者第一次调用mintAddressLock函数铸造了2个ID为1027的Token为后续攻击做准备,随后再次调用mintAddressLock铸造了3600个ID为1028的Token,在mint函数完成前攻击者重入了depositAdditionalToFNFT函数【ERC1155 onERC1155Received 重入】,由于NFT nextId(FNFTHandler.fnftsCreated)在mint函数铸造NFT完成并通知后进行更新,此时的nextId仍然为1028,并且合约并未验证1028的Token数量是否为0,因此攻击者再次成功地铸造了1个ID 为1031的Token,完成了攻击。

2 总结建议

此次攻击中的铸币相关函数未严格按照检查-生效-交互模式设计,且未考虑到ERC1155 token转账重入的可能性。

建议在合约设计时严格按照检查-生效-交互模式设计,并在ERC1155 token相关DeFi项目中加入防重入的功能。

截止目前为止,攻击者仍然未将资产进行转移,成都链安将持续进行监控。

攻击者地址:

https://etherscan.io/address/0xef967ece5322c0d7d26dab41778acb55ce5bd58

24小时热点

热点专题

2024年美元兑人民币汇率预测:会涨到8元吗?市场密切关注

2024年美元兑人民币汇率吸引了许多投资者的关注,涨到8元的 ...

4278271

波场区块链浏览器

狗狗币一夜暴涨700倍创下历史新高!

最近一段时间狗狗币暴涨幅度达到700倍,出现了巨大的涨幅,这 ...

3202643

波场区块链浏览器

玩比特币的都是什么人

比特币是一种去中心化、众包货币,近些年在社会中引起了强烈关注 ...

921789

火星财经

发改委发布《产业结构调整指导目录》:挖矿或将在2021年被淘汰(附全文)

2019年4月8日,发改委发布《产业结构调整指导目录(201 ...

626922

火币钱包

Staking是什么?

目前加密货币的总市值为2236亿美元,Staking中的加密 ...

576925

The Bitcoin News

比特大陆宣布推出两款新矿机:蚂蚁 S19和蚂蚁S19 Pro

当比特币区块奖励减半时,所有矿工产生的总收入也将减少一半。如 ...

559418

TodayOnChain

2024年央行推动数字货币全国使用试点

随着数字经济的快速发展,各国央行纷纷探索发行自己的数字货币, ...

548659

波场区块链浏览器

web3怎么下载注册

1. 要下载和注册Web3,您需要安装它的客户端(MyEth ...

519192

什么是货币

以太坊钱包是什么?

我们经常把储存以太坊资产的方法都叫做 “钱包”,

448861

The Block

什么是闪电贷(flashloans)?怎么利用闪电贷(flashloans)来套利?

2月16日,bZx被爆遭到“攻击”,“攻击者”操纵多个DeF ...

405586

Sky Mavis