相關信息
相關信息
合約地址
TreasureMarketplaceBuyer:
0x812cda2181ed7c45a35a691e0c85e231d218e273
TreasureMarketplace:
0x2e3b85f85628301a0bce300dee3a6b04195a15ee
漏洞細節分析
1. 用戶通過TreasureMarketplaceBuyer 合約中的buyItem 函數去購買NFT,該函數會先計算總共需要購買的價格並把支付所需的Token打入合約中,接著調用TreasureMarketplace 合約中的buyItem 從市場購買NFT 到TreasureMarketplaceBuyer 合約,接著在從TreasureMarketplaceBuyer 合約中把NFT 轉給用戶。
2. 在TreasureMarketplace 合約中:
攻擊交易分析"not enough quantity"攻擊交易分析
攻擊交易分析
此處僅展示一個攻擊交易的細節,其餘攻擊交易的手法都一致,不再贅述。
攻擊交易:
https://arbiscan.io/tx/0x82a5ff772c186fb3f62bf9a8461aeadd8ea0904025c3330a4d247822ff34bc02
攻擊者:
0x4642d9d9a434134cb005222ea1422e1820508d7b
攻擊細節:
總結
總結
總結
本次漏洞的核心在於進行ERC-721 標準的NFT 轉移前,缺少了對於傳入的_quantity 參數不為0 的判斷,導致了ERC-721 標準的NFT 可以直接被轉移且計算價格時購買NFT 所需費用被計算成0。針對此類漏洞,慢霧安全團隊建議在進行ERC-721 標準的NFT 轉移前,需對傳入的數量做好判斷,避免再次出現此類問題。