การตั้งข้อสงสัย: การวิเคราะห์รายละเอียดการขโมยเครือข่ายแบบชำระเงิน
การวิเคราะห์รายละเอียดการโจมตี
การวิเคราะห์รายละเอียดการโจมตี
ข้างต้นคือรายละเอียดของกระบวนการเรียกของกระบวนการโจมตีทั้งหมด
จะเห็นได้ว่าขั้นตอนการโจมตีทั้งหมดนั้นง่ายมาก ๆ ผู้โจมตีเรียกฟังก์ชันด้วยลายเซ็นของฟังก์ชัน (0x40c10f19) ในสัญญาพร็อกซี เนื่องจากไม่ทราบลายเซ็นของฟังก์ชัน เราจำเป็นต้องตรวจสอบว่าลายเซ็นของฟังก์ชันสอดคล้องกับฟังก์ชันใด
จากการตรวจสอบลายเซ็นของฟังก์ชัน เราพบว่าลายเซ็นนี้สอดคล้องกับฟังก์ชันมิ้นต์ กล่าวอีกนัยหนึ่ง ผู้โจมตีจะยุติกระบวนการโจมตีหลังจากเรียกใช้ฟังก์ชัน mint โดยตรง ณ จุดนี้ ดูเหมือนว่าเราจะสามารถวาดช่องโหว่ที่ฟังก์ชัน mint ไม่ได้รับการตรวจสอบสิทธิ์และนำไปสู่การสร้างเหรียญโดยพลการ จากการวิเคราะห์กระบวนการถ่ายโอนโทเค็นของ Etherscan ดูเหมือนว่าจะสามารถรองรับการคาดเดานี้ได้
แต่เป็นเช่นนั้นจริงหรือ?
ในการตรวจสอบแนวคิดของการสร้างเหรียญตามอำเภอใจโดยไม่ได้รับอนุญาต เราจำเป็นต้องวิเคราะห์ตรรกะเฉพาะของสัญญา เนื่องจากเครือข่ายแบบชำระเงินใช้โมเดลที่อัปเกรดสัญญาได้ เราจึงจำเป็นต้องวิเคราะห์สัญญาลอจิกเฉพาะ (0xb8...9c7) แต่เมื่อเราตรวจสอบ Etherscan เราพบว่าสัญญาลอจิกไม่ใช่โอเพ่นซอร์ส
ในขณะนี้ เพื่อค้นหา เราสามารถใช้การคอมไพล์เพื่อถอดรหัสตรรกะของสัญญาเท่านั้น ด้วยเครื่องมือการคอมไพล์ที่มาพร้อมกับ Etherscan คุณสามารถถอดรหัสสัญญาที่ไม่ใช่โอเพ่นซอร์สได้โดยตรง หลังจากทำการคอมไพล์แล้ว เราค้นพบความจริงที่น่าทึ่ง:
สรุป
สรุป
ธุรกรรมการโจมตี:
ลิงค์อ้างอิง:
ธุรกรรมการโจมตี:
https://etherscan.io/tx/0x4bb10927ea7afc2336033574b74ebd6f73ef35ac0db1bb96229627c9d77555a0


