MO - Điểm yếu kép trong một chức năng

Bài viết này được dịch máy
Xem bản gốc

Một dự án đang chạy trong OPTIMISTIC với Token chính có tên MO đã bị khai thác vào ngày 14 tháng 3 năm 2024 với mức lỗ khoảng 413 nghìn USD. Hợp đồng bị khai thác có hai điểm yếu trong chức năng cho phép kẻ tấn công đánh cắp USDT từ cả hợp đồng Loan và Cặp.

Tổng quan

Kẻ tấn công: https://optimistic.etherscan.io/address/0x4e2c6096985e0b2825d06c16f1c8cdc559c1d6f8

Hợp đồng dễ bị tổn thương:

https://optimistic.etherscan.io/address/0xae7b6514af26bcb2332fea53b8dd57bc13a7838e

Tấn công giao dịch: https://optimistic.etherscan.io/tx/0x4ec3061724ca9f0b8d400866dd83b92647ad8c943a1c0ae9ae6c9bd1ef789417

Cảm ơn đã đọc Verichains! Đăng ký miễn phí để nhận bài viết mới và hỗ trợ công việc của tôi.

Phân tích khai thác

Sau giao dịch tấn công, cuộc tấn công cực kỳ đơn giản: sử dụng một vòng lặp để vay USDT và nhanh chóng đổi lấy nó. Thông qua nhiều lần lặp lại quy trình này trong cùng một giao dịch, kẻ tấn công đã vay được một lượng USDT đáng kể và đồng thời hoán đổi mã thông báo MO để có thêm USDT trong cặp.

Khảo sát hàm vay:

Khi sử dụng chức năng vay, người dùng được yêu cầu gửi một lượng loanToken làm tài sản thế chấp. Số lượng cung cấp Token có thể được vay tùy thuộc vào số tiền thế chấp và giá thị trường. Ngoài ra, số lượng loanToken trong cặp cũng bị đốt cháy (gửi đến địa chỉ BURN) để tăng giá thị trường.

Đi sâu vào chức năng đổi quà:

Chức năng quy đổi tính lãi dựa trên thời gian trôi qua, nhưng dấu thời gian chỉ tăng khi Block tăng. Do đó, nếu người dùng đổi số dư của họ trong một Block duy nhất, họ sẽ không phải chịu bất kỳ khoản phí nào.

Xem xét logic bắt nguồn từ các chức năng nói trên, rõ ràng là nếu chúng ta vay và mua lại ngay lập tức, giá thị trường sẽ tăng lên, do đó chúng ta được miễn phí và cho phép chúng ta vay thêm USDT trong các giao dịch tiếp theo. Trong suốt quá trình tấn công, giá của Token MO cũng tăng lên, cho phép kẻ tấn công thu được một lượng USDT đáng kể từ cặp thông qua hoán đổi.

Nguyên nhân cốt lõi của các lỗ hổng nằm ở việc đốt các token trong cặp và việc sử dụng logic giá thị trường.

Bài học kinh nghiệm

hai điểm yếu nghiêm trọng trong chức năng vay mượn mà chúng ta cần chú ý .

Thứ nhất, việc chuyển trực tiếp mã thông báo từ cặp này sang đích bên ngoài thể hiện một hành động cực kỳ nguy hiểm . Số dư token trong Cặp UniswapV2 là công cụ tính toán trạng thái K, ảnh hưởng trực tiếp đến giá Token . Do đó, bất kỳ hành động nào thể hiện hành vi tương tự phải được hạn chế ở phía quản trị viên hoặc chức năng được xác minh rõ ràng.

Thứ hai, việc dựa vào giá được tính từ số dư của cặp tiền khiến hệ thống dễ bị thao túng giá. Ngay cả khi không bao gồm việc đốt các token trong cặp, hợp đồng hiện tại vẫn dễ bị tấn công bằng khoản vay flash. Những kẻ tấn công có thể sử dụng tài sản đáng kể từ Khoản vay nhanh để tăng giá Token MO trước khi gọi hàm vay và sau đó giảm MO về giá ban đầu. Trong quá trình vay, giá tăng cao cho phép kẻ tấn công đánh cắp một lượng USDT đáng kể từ hợp đồng.

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