Mất 2,15 triệu đô la! Phân tích lỗ hổng sự kiện MobiusDAO và theo dõi tiền bị đánh cắp

Tác giả: Beosin

Gần đây, dự án MobiusDAO trong hệ sinh thái BNB Chain đã bị tấn công, kẻ tấn công đã khai thác lỗ hổng logic trong hợp đồng của dự án để tạo ra một lượng lớn token MBU và bán ra để thu lợi. Đội ngũ an ninh Beosin đã tiến hành phân tích lỗ hổng và theo dõi dòng tiền của sự kiện này và chia sẻ kết quả như sau:

Các bước tấn công chi tiết

(1) Kẻ tấn công trước tiên đã triển khai hợp đồng tấn công (0x631adFF068D484Ce531Fb519Cda4042805521641)

và đã sử dụng hợp đồng này để gọi hàm gửi tiền của hợp đồng đại lý Mobius 0x95e92B09b89cF31Fa9F1Eca4109A85F88EB08531, sau đó hợp đồng Mobius đã mint hơn 9.7x10^15 token MBU và gửi đến hợp đồng tấn công.

Tấn công giao dịch hash: 0x2a65254b41b42f39331a0bcc9f893518d6b106e80d9a476b8ca3816325f4a150

(2) Hợp đồng tấn công gọi hợp đồng liên quan đến PancakeSwap để bán MBU token sau khi nhận được MBU token và hoàn thành việc kiếm lời.

Phân tích lỗ hổng

Hàm gửi tiền của hợp đồng Mobius sẽ đúc ra số lượng MBU token tương đương sau khi nhận được tiền gửi và gửi cho người gửi tiền. Trong hàm này, mỗi khi người dùng gửi WBNB, hàm sẽ lấy giá BNB để tính số lượng MBU token cần đúc và chuyển giao.

Giá của BNB đến từ hàm getBNBPriceInUSDT, hàm này trả về giá chính xác đến 18 chữ số thập phân. Như hình trên cho thấy, giá trả về khoảng 656 đô la.

Do bởi hợp đồng logic của Mobius không được mã nguồn mở, qua việc phản biện, chúng tôi phát hiện ra rằng lỗi xảy ra khi hàm trả về kết quả có 18 chữ số thập phân, hợp đồng lại nhân giá trị đó với 10^18, dẫn đến số lượng token MBU cao hơn gấp 10^18 lần so với kết quả bình thường.

Theo dõi tài sản bị đánh cắp

Beosin Trace đã phát hiện ra rằng tiền bị đánh cắp đã được theo dõi: số tiền bị đánh cắp đã được chuyển đổi thành khoảng 2.15 triệu USDT, trong đó 1.35 triệu USDT đã được đổi lấy BNB và lưu vào Tornado Cash, số còn lại 800.000 USDT đã được đổi chéo thành ETH trên chuỗi Ethereum, sau đó được lưu vào Tornado Cash. Beosin Trace đã thêm địa chỉ của hacker vào danh sách đen và sẽ tiếp tục theo dõi.

Theo phân tích của Beosin Trace, tất cả số tiền bị đánh cắp đã được gửi vào Tornado Cash.

tóm tắt

Cuộc tấn công này tập trung vào việc kẻ tấn công lợi dụng một lỗi số học trong hợp đồng dự án để đúc ra một lượng lớn token và bán ra kiếm lời. Đây vốn là một lỗi mã rất dễ phát hiện, nhưng đội ngũ dự án Mobius trước đó không tiến hành kiểm tra mã chi tiết để phát hiện lỗi này, cũng như không thực hiện kiểm toán, dẫn đến thiệt hại hơn 2,15 triệu đô la. Đội ngũ an ninh Beosin khuyến nghị đội ngũ dự án nên tăng cường kiểm toán và kiểm tra an toàn cho mã hợp đồng của dự án, nhằm tránh xảy ra tình huống tương tự.

Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • Bình luận
  • Chia sẻ
Bình luận
0/400
Không có bình luận
  • Ghim
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)