慢霧:TreasureDAO NFT交易市場「零元購」漏洞分析

本文約308字,閱讀全文需要約1分鐘
該漏洞導致ERC-721標準的NFT可以直接被轉移且計算價格時購買NFT所需費用被計算為0。

相關信息

相關信息

合約地址

TreasureMarketplaceBuyer:

0x812cda2181ed7c45a35a691e0c85e231d218e273

TreasureMarketplace:

0x2e3b85f85628301a0bce300dee3a6b04195a15ee

漏洞細節分析

1. 用戶通過TreasureMarketplaceBuyer 合約中的buyItem 函數去購買NFT,該函數會先計算總共需要購買的價格並把支付所需的Token打入合約中,接著調用TreasureMarketplace 合約中的buyItem 從市場購買NFT 到TreasureMarketplaceBuyer 合約,接著在從TreasureMarketplaceBuyer 合約中把NFT 轉給用戶。

慢霧:TreasureDAO NFT交易市場「零元購」漏洞分析

2. 在TreasureMarketplace 合約中:

慢霧:TreasureDAO NFT交易市場「零元購」漏洞分析

攻擊交易分析"not enough quantity"攻擊交易分析

攻擊交易分析

此處僅展示一個攻擊交易的細節,其餘攻擊交易的手法都一致,不再贅述。

攻擊交易:

https://arbiscan.io/tx/0x82a5ff772c186fb3f62bf9a8461aeadd8ea0904025c3330a4d247822ff34bc02

攻擊者:

0x4642d9d9a434134cb005222ea1422e1820508d7b

攻擊細節:

慢霧:TreasureDAO NFT交易市場「零元購」漏洞分析

總結

慢霧:TreasureDAO NFT交易市場「零元購」漏洞分析

總結

總結

本次漏洞的核心在於進行ERC-721 標準的NFT 轉移前,缺少了對於傳入的_quantity 參數不為0 的判斷,導致了ERC-721 標準的NFT 可以直接被轉移且計算價格時購買NFT 所需費用被計算成0。針對此類漏洞,慢霧安全團隊建議在進行ERC-721 標準的NFT 轉移前,需對傳入的數量做好判斷,避免再次出現此類問題。

原創文章,作者:慢雾科技。轉載/內容合作/尋求報導請聯系 report@odaily.email;違規轉載法律必究。

ODAILY提醒,請廣大讀者樹立正確的貨幣觀念和投資理念,理性看待區塊鏈,切實提高風險意識; 對發現的違法犯罪線索,可積極向有關部門舉報反映。

推薦閱讀
星球精選