

Theo tin tức, nhóm quỹ wCRES/USDT V2 của nền tảng giao dịch phi tập trung DODO đã bị hack và wCRES trị giá gần 980.000 đô la và USDT trị giá gần 1,14 triệu đô la đã bị chuyển đi. DODO tuyên bố rằng nhóm đã ngoại tuyến lối vào xây dựng nhóm quỹ có liên quan. Cuộc tấn công chỉ ảnh hưởng đến nhóm huy động vốn cộng đồng DODO V2. Ngoại trừ nhóm huy động vốn cộng đồng V2, các nhóm quỹ khác đều an toàn; nhóm đang hợp tác với các công ty bảo mật để điều tra và cố gắng khôi phục một phần của quỹ. Để biết thêm tin tức tiếp theo, vui lòng chú ý đến thông báo cộng đồng chính thức của DODO.
Phân tích chi tiết cuộc tấn công
Phân tích chi tiết cuộc tấn công
Bằng cách xem xét giao dịch tấn công này, chúng ta có thể thấy rằng toàn bộ quá trình tấn công diễn ra rất ngắn. Trước tiên, kẻ tấn công chuyển FDO và FUSDT sang nhóm quỹ wCRES/USDT, sau đó cho vay mã thông báo wCRES và USDT thông qua chức năng flashLoan của hợp đồng nhóm quỹ và khởi tạo hợp đồng nhóm quỹ.
Tại sao gửi mã thông báo FDO và FUSDT có thể cho vay thành công wCRES và USDT, đồng thời khởi tạo hợp đồng nhóm quỹ? Có phải vì có một kẽ hở trong chức năng cho vay chớp nhoáng của nhóm quỹ?
Tiếp theo, chúng tôi phân tích chi tiết chức năng flashLoan:
Bằng cách phân tích mã cụ thể, chúng tôi có thể thấy rằng khi thực hiện khoản vay nhanh, tiền sẽ được chuyển ra ngoài thông qua các hàm _transferBaseOut và _transferQuoteOut, sau đó các lệnh gọi logic bên ngoài cụ thể sẽ được thực hiện thông qua hàm DVMFlashLoanCall và cuối cùng là tiền trong hợp đồng sẽ được kiểm tra. Có thể thấy rằng đây là một chức năng cho vay nhanh thông thường, vì vậy vấn đề chỉ có thể nằm ở việc thực thi logic bên ngoài trong quá trình cho vay nhanh.
Bằng cách phân tích các lệnh gọi logic bên ngoài của khoản vay nhanh, có thể thấy rằng kẻ tấn công đã gọi hàm init của hợp đồng nhóm quỹ wCRES/USDT và chuyển vào địa chỉ FDO và địa chỉ FUSDT để khởi tạo hợp đồng nhóm quỹ.
Ở đây chúng ta có thể thấy rằng hợp đồng nhóm quỹ có thể được khởi tạo lại. Để tìm hiểu, chúng ta hãy phân tích chi tiết hàm khởi tạo:
quá trình tấn công
quá trình tấn công
1. Trước tiên, kẻ tấn công tạo hai hợp đồng mã thông báo FDO và FUSDT, sau đó gửi mã thông báo FDO và FUSDT vào nhóm quỹ wCRES/USDT.
2. Tiếp theo, kẻ tấn công gọi chức năng flashLoan của hợp đồng nhóm quỹ wCRES/USDT để thực hiện một khoản vay nhanh, cho vay các mã thông báo wCRES và USDT trong nhóm quỹ.
3. Do chức năng khởi tạo của hợp đồng nhóm quỹ wCRES/USDT không có bất kỳ xác thực và logic nào để ngăn các lệnh gọi khởi tạo lặp lại, nên kẻ tấn công gọi chức năng khởi tạo của hợp đồng nhóm quỹ wCRES/USDT thông qua chức năng thực thi logic bên ngoài của khoản vay nhanh và hợp đồng nhóm quỹ Cặp mã thông báo được thay thế bằng FDO/FUSDT từ wCRES/USDT.
tóm tắt
tóm tắt
Lý do chính của cuộc tấn công này là do chức năng khởi tạo hợp đồng nhóm vốn không có bất kỳ xác thực và hạn chế nào để ngăn chặn các cuộc gọi khởi tạo lặp lại, khiến kẻ tấn công sử dụng khoản vay flash để cho vay tiền thật, sau đó thay thế cặp mã thông báo nhóm vốn bằng khởi tạo lại hợp đồng Đồng tiền giả được tạo ra để kẻ tấn công vượt qua kiểm tra hoàn trả quỹ cho vay nhanh và bỏ túi đồng tiền thật.
Giao dịch tấn công tham chiếu:
https://cn.etherscan.com/tx/0x395675b56370a9f5fe8b32badfa80043f5291443bd6c8273900476880fb5221e
