重建世界:The Sandbox 任意燃燒漏洞回顧

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 的土地將被燃燒殆盡。從中我們也可以發現沒有安全性的元宇宙世界就是空中樓閣。

慢霧安全團隊建議:元宇宙系統的安全邊界更廣,上線前應該進行充分的安全審計,避免出現類似嚴重的問題。

聲明:本內容為作者獨立觀點,不代表0x财经 立場,且不構成投資建議,請謹慎對待,如需報導或加入交流群,請聯繫微信:VOICE-V。

來源:慢霧科技原創

Total
0
Shares
Related Posts