SlowMist: การวิเคราะห์ช่องโหว่ของ Zero Yuan Purchase ในตลาดซื้อขาย TreasureDAO NFT

avatar
慢雾科技
2ปี ที่แล้ว
ประมาณ 1064คำ,ใช้เวลาอ่านบทความฉบับเต็มประมาณ 2นาที
ช่องโหว่นี้ทำให้ NFT ของมาตรฐาน ERC-721 ถูกถ่ายโอนโดยตรง และต้นทุนที่จำเป็นในการซื้อ NFT จะคำนวณเป

ที่อยู่ตามสัญญา

ข้อมูลที่เกี่ยวข้อง

ที่อยู่ตามสัญญา

TreasureMarketplaceBuyer:

0x812cda2181ed7c45a35a691e0c85e231d218e273

TreasureMarketplace:

0x2e3b85f85628301a0bce300dee3a6b04195a15ee

การวิเคราะห์รายละเอียดช่องโหว่

1. ผู้ใช้ซื้อ NFT ผ่านฟังก์ชัน buyItem ในสัญญา TreasureMarketplaceBuyer อันดับแรก ฟังก์ชันนี้จะคำนวณราคาซื้อทั้งหมดและป้อน Token ที่จำเป็นสำหรับการชำระเงินลงในสัญญา จากนั้นเรียก buyItem ในสัญญา TreasureMarketplace เพื่อซื้อ NFT จากตลาด ไปยังสัญญา TreasureMarketplaceBuyer จากนั้นโอน NFT ไปยังผู้ใช้จากสัญญา TreasureMarketplaceBuyer

SlowMist: การวิเคราะห์ช่องโหว่ของ Zero Yuan Purchase ในตลาดซื้อขาย TreasureDAO NFT

2. ในสัญญา TreasureMarketplace:

SlowMist: การวิเคราะห์ช่องโหว่ของ Zero Yuan Purchase ในตลาดซื้อขาย TreasureDAO NFT

พบว่าถ้าพารามิเตอร์ _quantity ที่เข้ามาเป็น 0 คุณสามารถส่ง requirement(listedItem.quantity >= _quantity,"not enough quantity"การวิเคราะห์ธุรกรรมการโจมตี

การวิเคราะห์ธุรกรรมการโจมตี

ที่นี่จะแสดงเฉพาะรายละเอียดของธุรกรรมการโจมตีหนึ่งรายการเท่านั้น และวิธีการของธุรกรรมการโจมตีอื่นๆ ก็เหมือนกัน ดังนั้นฉันจะไม่ทำซ้ำที่นี่

ธุรกรรมการโจมตี:

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

ผู้โจมตี:

0x4642d9d9a434134cb005222ea1422e1820508d7b

รายละเอียดการโจมตี:

SlowMist: การวิเคราะห์ช่องโหว่ของ Zero Yuan Purchase ในตลาดซื้อขาย TreasureDAO NFT

ดังที่เห็นได้จากรูปด้านล่าง ผู้โจมตีเรียกฟังก์ชัน buyItem ในสัญญา TreasureMarketplaceBuyer และทำให้พารามิเตอร์ _quantity ขาเข้าเป็น 0

SlowMist: การวิเคราะห์ช่องโหว่ของ Zero Yuan Purchase ในตลาดซื้อขาย TreasureDAO NFT

สรุป

สรุป

หัวใจหลักของช่องโหว่นี้คือก่อนที่จะถ่ายโอน NFT ของมาตรฐาน ERC-721 จะไม่มีการตัดสินว่าพารามิเตอร์ _quantity ที่เข้ามานั้นไม่ใช่ 0 ซึ่งนำไปสู่ความจริงที่ว่า NFT ของมาตรฐาน ERC-721 สามารถถ่ายโอนได้ โดยตรงและการซื้อ NFT เมื่อคำนวณราคา ต้นทุนที่ต้องการจะคำนวณเป็น 0 เพื่อตอบสนองต่อช่องโหว่ดังกล่าว ทีมรักษาความปลอดภัยของ SlowMist แนะนำว่าก่อนที่จะถ่ายโอน NFT ของมาตรฐาน ERC-721 จำเป็นต้องตัดสินใจให้ดีเกี่ยวกับปริมาณที่เข้ามาเพื่อหลีกเลี่ยงปัญหาดังกล่าวไม่ให้เกิดขึ้นอีก

บทความต้นฉบับ, ผู้เขียน:慢雾科技。พิมพ์ซ้ำ/ความร่วมมือด้านเนื้อหา/ค้นหารายงาน กรุณาติดต่อ report@odaily.email;การละเมิดการพิมพ์ซ้ำกฎหมายต้องถูกตรวจสอบ

ODAILY เตือนขอให้ผู้อ่านส่วนใหญ่สร้างแนวคิดสกุลเงินที่ถูกต้องและแนวคิดการลงทุนมอง blockchain อย่างมีเหตุผลและปรับปรุงการรับรู้ความเสี่ยงอย่างจริงจัง สำหรับเบาะแสการกระทำความผิดที่พบสามารถแจ้งเบาะแสไปยังหน่วยงานที่เกี่ยวข้องในเชิงรุก

การอ่านแนะนำ
ตัวเลือกของบรรณาธิการ