ขั้นตอนการโจมตี
ด้านล่างนี้ ทีมรักษาความปลอดภัยของ CertiK จะให้คำอธิบายโดยละเอียดและการวิเคราะห์จากแง่มุมของที่อยู่ตามสัญญาและการดำเนินการโจมตี
ขั้นตอนการโจมตี
①ผู้โจมตีใช้สัญญาโทเค็นที่เป็นอันตราย (ใช้เป็นสัญญาโจมตีด้วย) และสร้างคู่ธุรกรรม PancakeSwap สำหรับโทเค็นและ BUSD
ผู้โจมตี: https://bscscan.com/address/0x0f3c0c6277ba049b6c3f4f3e71d677b923298b35
สัญญาโทเค็นที่เป็นอันตราย: https://bscscan.com/address/0xb7a740d67c78bbb81741ea588db99fbb1c22dfb7
คู่ซื้อขาย PancakeSwap: https://bscscan.com/address/0xca9596e8936aa8e902ad7ac4bb1d76fbc95e88bb
②ผู้โจมตีทำการกู้เงินด่วนจากสัญญา Rabbit's Bank และเรียกใช้วิธีการดำเนินการของ StrategyLiquidate
วิธีการดำเนินการถอดรหัสข้อมูลที่ป้อนลงในที่อยู่โทเค็น LP และรับที่อยู่สัญญาโทเค็นที่เป็นอันตรายเพิ่มเติม
ผู้โจมตีใช้รหัสโจมตีในสัญญาโทเค็นที่เป็นอันตรายเพื่อเริ่มการโจมตีเบื้องต้น: https://bscscan.com/address/0xbeeb9d4ca070d34c014230bafdfb2ad44a110142
สัญญา StrategyLiquiddate: https://bscscan.com/address/0x5085c49828b0b8e69bae99d96a8e0fcf0a033369
③สัญญาโทเค็นที่เป็นอันตรายเรียกใช้เมธอด performUpkeep ของสัญญา FlurryRebaseUpkeep นับจำนวนสัญญา Vault ที่เกี่ยวข้องใหม่ และอัปเดตตัวคูณของโทเค็น Rho ที่เกี่ยวข้อง
ตัวคูณที่นี่จะใช้สำหรับการคำนวณยอดคงเหลือของโทเค็น Rho จำนวนเงินที่เกี่ยวข้องของสัญญา Vault ได้รับการระบุใหม่ และตัวคูณของโทเค็น Rho ที่เกี่ยวข้องจะได้รับการอัปเดต ตัวคูณที่นี่จะใช้สำหรับการคำนวณยอดคงเหลือของโทเค็น Rho การอัปเดตนี้ขึ้นอยู่กับยอดคงเหลือในสัญญากลยุทธ์กำไรที่เกี่ยวข้องกับสัญญาห้องนิรภัย
การอัปเดตถูกทริกเกอร์ในระหว่างกระบวนการกู้ยืมแบบแฟลช ในขณะนี้ สินเชื่อแบบแฟลชยังไม่สิ้นสุดและจำนวนเงินที่ยืมยังไม่ได้รับการส่งคืน ดังนั้น ยอดเงินปัจจุบันของสัญญาธนาคารจึงน้อยกว่าค่าปกติมาก สัญญาธนาคารนี้ยังเป็นส่วนหนึ่งของกลยุทธ์บางอย่าง ซึ่งทำให้ความสมดุลของกลยุทธ์บางอย่างมีค่าน้อยกว่าค่าปกติ ซึ่งทำให้ตัวคูณมีค่าน้อยกว่าค่าปกติ
FlurryRebaseUpkeep สัญญา: https://bscscan.com/address/0x10f2c0d32803c03fc5d792ad3c19e17cd72ad68b
หนึ่งในสัญญาห้องนิรภัย: https://bscscan.com/address/0xec7fa7a14887c9cac12f9a16256c50c15dada5c4
④ ผู้โจมตีคืนจำนวนเงินที่ยืมแฟลชและเสร็จสิ้นการโจมตีครั้งแรก และเตรียมการสำหรับการโจมตีครั้งต่อไปเพื่อทำกำไร
⑤ ในธุรกรรมต่อไปนี้ ผู้โจมตีจะฝากโทเค็นด้วยตัวคูณต่ำที่ได้รับจากธุรกรรมก่อนหน้า อัปเดตตัวคูณเป็นมูลค่าที่สูงขึ้น (ปกติ) และถอนโทเค็นที่มีตัวคูณสูง ตัวอย่างเช่น ในการทำธุรกรรมการโจมตีครั้งแรก ตัวคูณได้รับการอัปเดตเป็น 4.1598e35
ตัวคูณได้รับการอัปเดตเป็น 4.2530e35 ในธุรกรรมของการโจมตีครั้งต่อไป
ตัวอย่างการโจมตี: https://bscscan.com/tx/0x923ea05dbe63217e5d680b90a4e72d5552ade9e4c3889694888a2c0c1174d830
https://bscscan.com/tx/0x646890dd8569f6a5728e637e0a5704b9ce8b5251e0c486df3c8d52005bec52df
⑥ เนื่องจากตัวคูณเป็นหนึ่งในปัจจัยที่กำหนดความสมดุลของโทเค็น Rho:
ยอดโทเค็น Rho ของผู้โจมตีเพิ่มขึ้นในการทำธุรกรรม ดังนั้นเขาจึงสามารถถอนโทเค็นออกจาก Vault ได้มากขึ้น
ข้อความ
เขียนในตอนท้าย
เหตุการณ์ส่วนใหญ่เกิดจากการพึ่งพาภายนอก
นอกจากนี้ เว็บไซต์อย่างเป็นทางการของ CertiK https://www.certik.com/ ได้เพิ่มฟังก์ชันการเตือนชุมชน บนเว็บไซต์อย่างเป็นทางการ คุณสามารถดูข้อมูลคำเตือนชุมชนต่างๆ ที่เกี่ยวข้องกับช่องโหว่ การโจมตีของแฮ็กเกอร์ และ Rug Pull ได้เสมอ
การแจ้งเตือนล่วงหน้าของเหตุการณ์นี้ออกอากาศทาง Twitter อย่างเป็นทางการของ CertiK [https://twitter.com/CertiKCommunity] ในครั้งแรก
นอกจากนี้ เว็บไซต์อย่างเป็นทางการของ CertiK https://www.certik.com/ ได้เพิ่มฟังก์ชันการเตือนชุมชน บนเว็บไซต์อย่างเป็นทางการ คุณสามารถดูข้อมูลคำเตือนชุมชนต่างๆ ที่เกี่ยวข้องกับช่องโหว่ การโจมตีของแฮ็กเกอร์ และ Rug Pull ได้เสมอ
ด้วยอุบัติการณ์การโจมตีที่สูงเมื่อเร็วๆ นี้ ฝ่ายโครงการเข้ารหัสและผู้ใช้ควรระมัดระวังมากขึ้น รวมทั้งปรับปรุงและตรวจสอบรหัสสัญญาอย่างทันท่วงที นอกจากนี้ ทีมงานด้านเทคนิคควรให้ความสนใจกับเหตุการณ์ด้านความปลอดภัยที่เกิดขึ้นในเวลาที่เหมาะสม และตรวจสอบว่ามีปัญหาที่คล้ายกันนี้อยู่ในโครงการของตนเองหรือไม่


