查看原文
其他

重建世界:The Sandbox 任意燃烧漏洞回顾

慢雾安全团队 慢雾科技 2022-03-13

By:Victory@慢雾安全团队


据慢雾区情报,2022 年 1 月 28 日 The Sandbox 官方发布一则 LAND 智能合约迁移的公告,但是在公告中没有说明合约具体是出了什么问题,慢雾安全团队现将简要分析结果分享如下。


项目背景


The Sandbox 是一个虚拟世界,玩家可以使用平台代币 SAND 在以太坊区块链中创建、拥有自己的游戏体验并从中获利。在这里你可以玩、创造、收集、赚取、治理和拥有游戏中的任何东西。


简要分析


1.通过阅读问题的合约,地址:

0x50f5474724e0Ee42D9a4e711ccFB275809Fd6d4a,发现在以往都设置成内部调用的 _burn 函数在问题合约是一个 public 的状态。



虽然函数内有做 require(from == owner, "not owner"); 判断,但是这个 from 是可以由调用者自己构造。这就导致任何用户都可以去随意 burn 掉其他用户的 NFT。


2.我们尝试着去查询链上的交易记录,发现已经有人进行了 _burn 测试,成功燃烧掉了一块不属于他的 NFT,但没有发现大规模的攻击行为,应该是个白帽测试。



3.从上图我们可以看到燃烧的 tokenID 是 3738, 但是 NFT tokenURI

(https://api.sandbox.game/lands/3738/metadata.json) 仍可正常访问,土地的 NFT 信息也仍然可以访问

(https://www.sandbox.game/en/lands/9045d0ed-2fdd-4bd1-b606-28527b4eb39c/),我们推测官方应该已经对此做出修改。


4.随后查看了项目方升级后的新合约,地址:

0x5CC5B05a8A13E3fBDB0BB9FcCd98D38e50F90c38



发现项目方这次更新后使用的是 proxy 合约(可能是便于日后出问题之后可以对合约进行二次升级),逻辑合约地址:

0x1fc6479bdc7511c6803aff2f477e0fd3171606e0,对比后发现修改过的 _burn 函数其函数可见性已经修改成 internal。


5.至此,The Sandbox 事件简要分析完毕。通过查询合约发现还是有部分 NFT 拥有者还未做迁移,这是项目方提供的迁移界面:

https://sandbox.game/en/me/migrate。


总结

本次事件中项目方及时的确认了问题并且提出了解决方案,未造成用户资产的严重损失。但是漏洞的细节让人细思极恐。如果有攻击者利用此漏洞并进行恶意攻击,那么整个 The Sandbox 的土地将被燃烧殆尽。从中我们也可以发现没有安全性的元宇宙世界就是空中楼阁。


慢雾安全团队建议:元宇宙系统的安全边界更广,上线前应该进行充分的安全审计,避免出现类似严重的问题。

往期回顾

慢雾科技四周年,做区块链黑暗森林的那束光

DeFi 频遭攻击,真的足够「去中心化」吗?

慢雾:2021 年区块链安全生态回顾,全球损失超 98 亿美元

智能合约安全审计入门篇 —— 自毁函数

智能合约安全审计入门篇 —— 溢出漏洞

慢雾导航


慢雾科技官网

https://www.slowmist.com/


慢雾区官网

https://slowmist.io/


慢雾 GitHub

https://github.com/slowmist


Telegram

https://t.me/slowmistteam


Twitter

https://twitter.com/@slowmist_team


Medium

https://medium.com/@slowmist


知识星球

https://t.zsxq.com/Q3zNvvF


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存