ซื้อขาย
ซื้อขาย
ผู้โจมตีทำธุรกรรมสามรายการเพื่อทำการโจมตี:
https://bscscan.com//tx/0xe13ec0941580d3c286b46fa6566f20195bdd52b3d65fc7ff4a953a8fc774c6c4
https://bscscan.com//tx/0xe5c89e9ac217e4e16c2399f3597f7b5fbb73b45c1d3360788ee51ea2561def3a
https://bscscan.com//tx/0x8693a95f8481ba02ceaabed8e95b4e1eb8ac589c69c027c96b12ac5295714c3f
ผู้โจมตี
ที่อยู่ของผู้โจมตีคือ [0xa1e31b29f94296fc85fac8739511360f279b1976]
สัญญาการโจมตี
สัญญาการโจมตีคือ [0x1d448e9661c5abfc732ea81330c6439b0aa449b5] สัญญานี้ถูกใช้งานโดยผู้โจมตีเมื่อวันที่ 30 มิถุนายน 2023 หนึ่งวันก่อนการโจมตี สัญญามีตรรกะง่ายๆ ในการเรียกสัญญา V 3 Migrator ด้วยพารามิเตอร์ที่แตกต่างกัน
สัญญาที่ถูกโจมตี
สัญญาที่ถูกโจมตีคือ [0x839b0afd0a0528ea184448e890cbaaffd99c1dbfขั้นตอนการโจมตี
ขั้นตอนการโจมตี
ผู้โจมตีใช้ประโยชน์จากข้อบกพร่องในสัญญา V 3 Migrator ทำให้สามารถแก้ไขพารามิเตอร์ของฟังก์ชันการโยกย้ายได้ ขั้นตอนการโจมตีมีดังนี้:
เหยื่ออนุญาตโทเค็น LP ให้กับสัญญา Biswap V 3 Migrator
ผู้โจมตีเผาโทเค็น V 2 LP ของเหยื่อและเพิ่มสภาพคล่อง V 3 ด้วยโทเค็นปลอม ในขั้นตอนนี้ โทเค็น 0 และโทเค็น 1 ของ V 2 LP ยังอยู่ในสัญญา V 3 Migrator
ผู้โจมตีเผาโทเค็น V 2 LP ปลอม และเพิ่มสภาพคล่อง V 3 ด้วยโทเค็น 0 และโทเค็น 1 ของ V 2 LP และโทเค็นส่วนเกิน 0 และโทเค็น 1 ที่ไม่ได้ใช้เพื่อเพิ่มสภาพคล่อง V 3 จะถูกโอนกลับไปยังผู้โจมตี ในเวลาเดียวกัน สภาพคล่อง V3 ในขั้นตอนนี้เป็นของผู้โจมตีด้วย
สาเหตุที่แท้จริง
สาเหตุของการโจมตีคือสัญญา V3 Migrator ของ Biswap ไม่มีพารามิเตอร์การตรวจสอบเมื่อย้ายจาก Biswap V2 ไปยัง Biswap V3 โดยเฉพาะมีประเด็นสำคัญในสัญญา:
สัญญาไม่ได้ตรวจสอบว่าพารามิเตอร์โทเค็น 0 และโทเค็น 1 ตรงกับโทเค็นจริงในโทเค็น V 2 LP
ปัญหานี้ทำให้ผู้โจมตีสามารถส่งโทเค็นปลอมและจำนวนเงินไปยังฟังก์ชันการย้ายข้อมูล และขโมยโทเค็นจริงจากผู้ใช้ที่อนุญาตโทเค็น LP ไปยังสัญญา V 3 Migrator
Key Code
ทรัพย์สินที่เสียหาย
ผู้โจมตี [0xa1e31b29f94296fc85fac8739511360f279b1976] ได้รับทรัพย์สินอย่างผิดกฎหมายมากถึง 140,000 ดอลลาร์
เงินทุนไหลเข้า
ผู้โจมตีถอนสภาพคล่องเพื่อแลกกับ $BNB
ในท้ายที่สุด ผู้โจมตีได้โอนเงินจำนวน 603 ดอลลาร์ BNB ไปยัง Tornadocash เพื่อการฟอกเงิน
PoC
https://github.com/SunWeb3Sec/DeFiHackLabs/blob/main/src/test/Biswap_exp.sol
คำแนะนำด้านความปลอดภัย
สรุปแล้วhttps://bscscan.com/tokenapprovalchecker
สรุปแล้ว
การโจมตี Biswap เป็นตัวอย่างทั่วไป การโจมตีโทเค็นปลอมทำให้ใช้ช่องโหว่ DEX บน BSC อย่างเต็มรูปแบบเพื่อเก็บเกี่ยวเงินทุนจากผู้ใช้และฝ่ายโครงการ การโจมตียังเน้นย้ำถึงความสำคัญของการตรวจสอบพารามิเตอร์และยอดคงเหลือของสัญญาที่จัดการเงินทุนของผู้ใช้ นอกจากนี้ ผู้ใช้ควรระมัดระวังในการอนุญาตโทเค็นให้กับสัญญาของบุคคลที่สามและตรวจสอบซอร์สโค้ดและรายงานการตรวจสอบของสัญญาก่อนใช้งาน เพื่อตอบสนองต่อการโจมตีนี้ Biswap ยังได้นำกลยุทธ์การรับมือ 2 ประการมาใช้อย่างรวดเร็ว:
กำหนดให้ผู้ใช้เพิกถอนการอนุญาตสัญญา V 3 Migrator โดยเร็วที่สุด เพื่อให้ผู้โจมตีไม่สามารถเข้าถึงโทเค็น LP ของตนได้อีกต่อไป
ลบทวีตของตนเองที่ส่งเสริมการโยกย้าย V3 และแจ้งให้ผู้ใช้ทราบถึงประโยชน์ของการย้ายโทเค็น LP
หากการโจมตีนี้ไม่หยุดทันเวลา สัญญาการย้ายข้อมูลทั้งหมดของ Biswap จะต้องสูญเสียเงินหลายสิบล้านดอลลาร์ เนื่องจากผู้โจมตีสามารถใช้โทเค็นปลอมเพื่อย้ายสภาพคล่องทั้งหมดจาก Biswap V2 ไปยัง Biswap V3 ซึ่งเป็นอันตรายต่อ Biswap และมันจะ เป็นผลเสียหายร้ายแรงต่อผู้ใช้และเป็นอุปสรรคร้ายแรงสำหรับการพัฒนา DEX บน BSC
