火星链 火星链
Ctrl+D收藏火星链

DEPO:移花接木:Revest Finance 被黑分析

作者:

时间:1900/1/1 0:00:00

By:九九@慢雾安全团队

2022 年 03 月 27 日,据慢雾区消息,Revest Finance 的 Revest 合约遭到黑客攻击,黑客盗取了近 770 万枚 ECO、579 枚 LYXe、近 7.15 亿枚 BLOCKS 以及超 35 万枚 RENA。慢雾安全团队第一时间介入分析,并将结果分享如下:

相关信息

Revest Finance 提出了一种新协议,用于将可替代的 ERC-20 代币作为不可替代的代币化金融工具进行打包、转移和存储,利用 ERC-1155 非可替代代币(NFT)标准来简化访问和商业通用性。使用该产品,资产的所有权可以以不影响资产价值的方式进行交易,从而形成一个新的商业模式。通过有针对性的用例发现该协议的机制、治理和货币化。

以下是本次攻击涉及的相关地址:

攻击者地址:

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

攻击合约:

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

NFT系列Space Pepes过去24小时交易额约为730万美元:金色财经报道,Space Pepes是过去24小时内最畅销的NFT系列,交易额约为730万美元。根据CryptoSlam的数据,链上铸造的数字资产销售额约为 2.94 亿美元。基于比特币的 NFT 仅在上个月完成了大部分业务,在过去 30 天内产生 1.56 亿美元的销售额,使其成为第二受欢迎的数字资产链。以太坊在过去一个月中位居榜首,总销售额约为 4.2 亿美元。[2023/5/20 15:14:59]

被攻击合约:

https://etherscan.io/address/0x2320a28f52334d62622cc2eafa15de55f9987ed9#code

攻击交易:

https://etherscan.io/tx/0xe0b0c2672b760bef4e2851e91c69c8c0ad135c6987bbf1f43f5846d89e691428

https://etherscan.io/tx/0x613b2de3bb9043884a219296eeb1ada8c47b5a0262b9c68ca06ffd2de3a5d9f5

Bithumb实控人因涉嫌贪污及渎职被捕:2月2日消息,韩国首尔南部地方法院负责拘捕令的部长以涉嫌贪污、渎职为由拘捕 Bithumb 实控人姜钟铉(音译),表示其有逃跑和毁灭证据的可能,此外被认为是姜某亲信的非上市相关公司代表赵某也一同被拘留。(韩联社)[2023/2/2 11:42:27]

https://etherscan.io/tx/0x0251c2b8012a61567ec5855010d29618ada066642e4a2866755d58337c2866d9

https://etherscan.io/tx/0x19b10c6d38f0b911fdc0e722d681a70a56699d70559eefef3d4d6fe88276c813

攻击核心点

在被攻击的 Revest 合约中,用户调用 mintAddressLock 函数来将一定数量的 ERC-20 代币存入 Revest Smart Vault 时,就会创建 FNFT。该 NFT 代表了用户拥有的代币资产数额,后续可以调用 withdrawFNFT 函数将代币赎回。

攻击核心点就在于攻击者利用 ERC1155 标准铸造 NFT 时会调用接受者地址的 onERC1155Received 函数,因此攻击者利用该点回调重入了 Revest 合约中的 depositAdditionalToFNFT 函数,该函数会铸造一个新的 NFT,接着会调用 tokenVault 合约的 handleMultipleDeposits 函数记录新的 NFT 的信息,而 handleMultipleDeposits 函数中缺少了对该新铸造的 NFT 是否存在的判断,故此攻击者利用重入修改了已经铸造过的 NFT 的信息,而用户铸造 NFT 打入 ERC20 资产代币的流程是在重入操作之前的,故此用户无需打入 ERC20 代币就成功铸造了代表自己具有 360001 枚 ERC20 代币资产的 NFT。

交通运输部:1-10月完成区块链进口货物港口电子放货68.3万标箱:金色财经报道,11月25日,交通运输部水运局副局长郭青松在交通运输部例行新闻发布会上披露,今年1-10月,完成基于区块链的进口货物港口电子放货68.3万标箱,同比增长138%,进一步扩展了区块链技术在航运领域的应用。[2022/11/25 20:45:34]

具体细节分析

此处拿获取 RENA 代币的攻击进行分析,其他几个攻击手法一致,不做过多赘述。

1. 攻击者首先从 uniswap 池子中闪电贷借出 2 枚 RENA 代币

2. 接着调用 Revest 合约中的 mintAddressLock 函数,传入 quantities 为 2,该函数进行加锁操作后会调用 doMint 函数来铸造 NFT

在 doMint 函数中,会调用 tokenVault 合约的 createFNFT 函数记录所铸造的 NFT 函数信息,接着用户给 tokenVault 合约转账相应的 ERC20 代币,最后调用 FNFTHandler 合约中的 mint 函数来发放 NFT

国内首份中小企业数实融合报告:区块链技术加速落地第二产业:11月18日消息,国内首个调研中小企业数实融合实践的报告《以小“建”大:中小实体企业数实融合新趋势观察》正式发布。其中,“区块链技术加速落地第二产业”作为近年来出现的新变化被重点强调。

报告调研认为,随着社会经济的数字化程度不断提高,基于数据的产业协作将迎来爆发式增长机会。在这样的背景下,以提供“数字信任”为支撑的区块链技术将变得越来越重要,它将大大简化企业内部以及产业间的协作交易流程,降低信任成本。与此同时,也要注意到,以“区块链+IoT”、“区块链+隐私计算”为代表的融合技术正在快速下沉至实体产业,贴近工业、制造业领域的中小企业,成为助力第二产业发展的中坚力量。[2022/11/18 13:21:59]

所铸造的 NFT 的 fnftId 为 1027, 所记录的该 NFT 相关信息如下:

因为 depositAmount 为 0,故此 NFT 代表用户拥有的 ERC20 代币资产为 0,故无需转相关资产代币给合约

过去一周,NFT交易聚合器Blur总交易额翻倍至1380万美元:10月28日消息,据Dune Analytics数据显示,NFT交易聚合器Blur自推出测试版本以来已完成超4.9万笔交易,有超15.6万枚NFT售出。过去一周,Blur总交易额从约660万美元增长到超1380万美元,实现翻番。

此前报道,在经过4个月的内测阶段后,NFT交易聚合器Blur已于10月20日正式上线,自推出测试版本以来其已完成超2.5万笔交易,有超9.8万枚NFT售出,总交易额近660万美元。[2022/10/28 11:52:52]

3. 再次调用 Revest 合约中的 mintAddressLock 函数,传入 quantities 为 360000,与上面相同的步骤调用 doMint 进行铸造 NFT,所铸造的 NFT 的 fnftId 为 1028,记录的 NFT 信息如下:

因为 depositAmount 为 0,故仍然无需转账代币资产给 tokenVault,但是与之前不同的是,这一次铸造 NFT 的操作中,因为在调用 FNFTHandler 合约的 mint 函数时会调用 _doSafeTransferAcceptanceCheck 函数

该函数会调用攻击合约的 onERC1155Received 函数,故此攻击者利用攻击合约中的重写的 onERC1155Received 函数回调重入了 Revest 合约的 depositAdditionalToFNFT 函数

在 depositAdditionalToFNFT 函数需要传入指定的 fnftId(此处是 1027)、NFT 数量 quantity(此处是 1)与单个 NFT 中需要存款的资产数额 amount(此处是 1),该函数会 burn 掉传入的 fnftId 的指定数量的 NFT,接着用户转入指定数量的 ERC20 代币资产并 mint 新的 NFT,需要转账的数量是 quantity *? amount 为 1,最后调用 tokenVault 合约中的 handleMultipleDeposits?记录新的 NFT 的存款数量为上面传入指定 fnftId 的 NFT 的 depositAmount 值 + 传入的 amount 的值

而在 handleMultipleDeposits 函数 mint 新的 NFT 时没有判断该 NFT 的信息是否在 tokenVault 合约中存在,故此攻击者利用该问题直接修改了 1028 号 NFT 的信息,使得该 NFT 虽然在 doMint 操作时第一次记录的 depositAmount 为 0,但是在重入后却修改成了 1

4. 最后调用 withdrawFNFT 函数进行提取 NFT 中所代表的 ERC20 代币资产

该函数燃烧掉指定的 NFT 后,会调用 tokenVault 合约中的 withdrawToken 函数进行提款

因为 depositAmount 在回调后被修改了为了 1,故此最后提款的 RENA 数量计算出来约为 360000 枚

5. 攻击者归还闪电贷后获利离场

总结

本次攻击事件是由于在 tokenVault 合约中的 handleMultipleDeposits 函数中没有判断该新铸造的 NFT 是否存在,故此攻击者利用该点直接修改了已经铸造过的 NFT 的信息,并且在 Revest 合约中关键的函数没有做重入锁的限制,导致了被回调利用。慢雾安全团队建议在进行铸造 NFT 等敏感操作时需增加对 NFT 是否已经存在的判断,且在合约关键函数中必须添加重入锁的限制,避免再次出现此类问题。

标签:NFTFNFULTDEPOnft币未来价格会不会到一美元FNF币WAULT价

比特币行情热门资讯
PAY:金色趋势丨本轮大反弹和之前熊市大反弹有何不同?

前期文章提示,就算牛市结束,价格回落至50周均线一带,大概率也会迎来超跌反弹,后面走势如预期,价格在这一带止跌反弹回升至目前5万美金附近,并且周线已经站上0.618对数回撤线.

1900/1/1 0:00:00
DOM:欧盟计划立法对Libra等加密货币进行监管

据彭博社报道,欧盟负责欧元和金融服务的副主席Valdis Dombrovskis表示,欧盟正在研究加密资产的监管框架.

1900/1/1 0:00:00
加密货币:加密税成美国税局“优先事项” 税务律师怎么看?

美国国税局称自7月底开始将陆续向上万名加密货币投资者发送信件敦促对加密货币缴税,加密税收已成为美国国税局的“优先处理事项”.

1900/1/1 0:00:00
TFI:辟谣丨李鸣:年底发布区块链行业标准系误读 实则为术语国际标准

4月10日,据新华财经中国金融信息网报道,在“2019中国国际区块链技术与应用大会”上,中国电子技术标准化研究院区块链研究室主任李鸣透露,预计国内将于年底发布区块链标准化定义.

1900/1/1 0:00:00
区块链:印度:分布式账本技术、区块链和中央银行

近年来,分布式账本技术(DLT)和区块链在功能与复杂性方面有了很大的发展,可以为包括金融部门在内的各个行业提供解决方案.

1900/1/1 0:00:00
USHI:金色趋势丨下一轮的突破即将到来?

金色晨讯 | 9月12日隔夜重要动态一览:21:00-7:00关键词:欧洲五国、美国、SushiSwap、Compound 1. 欧洲五国财长呼吁欧盟委员会监管稳定币; 2.

1900/1/1 0:00:00