Tiết lộ Logic Sai lầm trong Dự án Mosca

Bài viết này được dịch máy
Xem bản gốc
Vào ngày 13 tháng 1 năm 2025, hợp đồng Mosca trên Binance Smart Chain (BSC) đã bị khai thác lần thứ hai do logic không chính xác trong các luồng joinwithdraw. Vụ khai thác này dẫn đến tổng thiệt hại khoảng 37.600 USD.

Thông tin chính

Kẻ tấn công:

https://bscscan.com/address/0xe763da20e25103da8e6afa84b6297f87de557419

Hợp đồng dễ bị tấn công:

https://bscscan.com/address/0xd8791f0c10b831b605c5d48959eb763b266940b9

Giao dịch tấn công:

https://bscscan.com/tx/0xf13d281d4aa95f1aca457bd17f2531581b0ce918c90905d65934c9e67f6ae0ec

Phân tích vụ khai thác

Kẻ tấn công đã khai thác một thiết kế sai lầm bằng cách thực hiện bảy lệnh join liên tiếp trước khi thực hiện hàm withdrawFiat trong một giao dịch duy nhất. Trình tự này cho phép kẻ tấn công thao túng việc tích lũy số dư của họ và rút tiền vượt quá số tiền họ đã gửi.

Phân tích hàm join

Hàm join được dự định để quản lý các đầu vào Staking. Tuy nhiên, logic của nó cho phép số dư của người dùng liên tục tích lũy dựa trên số dư trước đó. Bằng cách gọi join bảy lần liên tiếp, kẻ tấn công đã nhân giả số dư của họ. Cách tiếp cận bất thường này đối với việc tính toán lợi nhuận Staking đã tạo ra một trạng thái không mong muốn có thể bị khai thác.

Phân tích hàm withdrawFiat

Trong hàm withdrawFiat, hợp đồng trừ trực tiếp số tiền rút ra dựa trên đầu vào của người dùng và sau đó chuyển số tiền đó trở lại cho người dùng. Công thức này không phù hợp với logic tích lũy của hàm join, cho phép kẻ tấn công rút nhiều tiền hơn số tiền họ đã gửi.

Nguyên nhân gốc rễ

Vấn đề cốt lõi nằm ở sự không khớp giữa cơ chế tích lũy trong hàm join và công thức rút tiền trong hàm withdrawFiat. Mặc dù withdrawFiat thực hiện chính xác theo logic riêng của nó, nhưng nó không tính đến số dư tích lũy được tạo ra bởi các lệnh join lặp lại. Sự khác biệt này, cùng với việc kiểm tra xác minh không đầy đủ, đã cho phép kẻ tấn công rút tiền vượt xa số tiền họ đã gửi.

Bài học kinh nghiệm

Vụ khai thác hợp đồng Mosca phơi bày một lỗ hổng cốt lõi, nhưng có thể tránh được, trong thiết kế hợp đồng thông minh của dự án - một lỗ hổng mà các bài kiểm tra kỹ lưỡng và kiểm toán bảo mật có thể đã phát hiện và khắc phục trong quá trình phát triển. Trường hợp này nhấn mạnh tầm quan trọng của các trường hợp kiểm tra mạnh mẽ, xác minh chính thức và đánh giá mã của bên thứ ba để phát hiện các vector tấn công tiềm năng trước khi triển khai. Nó khẳng định rằng bảo mật hợp đồng thông minh vượt ra ngoài phát triển, đòi hỏi đánh giá và giám sát rủi ro liên tục để bảo vệ các hệ sinh thái blockchain khỏi bị khai thác.

Nguồn
Tuyên bố từ chối trách nhiệm: Nội dung trên chỉ là ý kiến của tác giả, không đại diện cho bất kỳ lập trường nào của Followin, không nhằm mục đích và sẽ không được hiểu hay hiểu là lời khuyên đầu tư từ Followin.
Thích
Thêm vào Yêu thích
Bình luận