Slow Mist: Phân tích tấn công Furucombo
慢雾科技
2021-02-28 08:33
本文约1937字,阅读全文需要约8分钟
Để tránh ủy quyền quá mức, tính bảo mật của DeFi còn một chặng đường dài phía trước.

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

Hợp đồng có vấn đề lần này nằm trong hợp đồng đại lý của chính Furucombo. Toàn bộ quá trình tấn công rất đơn giản. Bằng cách đặt địa chỉ logic của Proxy AaveV2 của Furucombo, kẻ tấn công sẽ chuyển tiếp tất cả logic được gọi thông qua hợp đồng proxy Furucombo sang hợp đồng độc hại của chính kẻ tấn công, dẫn đến việc đánh cắp bất kỳ khoản tiền nào.

Nhưng nếu mọi thứ chỉ đơn giản như vậy, thì phân tích này sẽ không có gì đáng nói. Vấn đề phức tạp hơn nhiều so với tưởng tượng.

Như thể hiện trong hình trên, mục nhập của kẻ tấn công nằm trong hàm batchExec của Furucombo, trước tiên hãy phân tích hàm batchExec:

Trên đây là cách triển khai cụ thể chức năng batchExec của hợp đồng Proxy Furucombo. Hợp đồng _preProcess và _postProcess tương ứng thực hiện một số xử lý dữ liệu trước và sau cuộc gọi và không liên quan đến logic cuộc gọi cụ thể, có thể bỏ qua ở đây. Chúng tôi chủ yếu quan sát chức năng _execs cốt lõi:

Thông qua việc phân tích mã thực thi, không khó để nhận thấy rằng logic chính của hàm là kiểm tra dữ liệu trong mảng cấu hình và thực hiện một số xử lý trên dữ liệu theo dữ liệu trong mảng cấu hình. Tuy nhiên, nhìn lại dữ liệu lời gọi của kẻ tấn công ở trên, không khó để nhận thấy rằng trong dữ liệu lời gọi của kẻ tấn công, dữ liệu của các cấu hình là một địa chỉ 0:

Có một mẹo ở đây, vì địa chỉ 0 là địa chỉ EOA nên tất cả các lệnh gọi hàm đến địa chỉ EOA sẽ thành công, nhưng sẽ không trả về bất kỳ kết quả nào. Kết hợp với thủ thuật này thì có thể tạm bỏ qua phần configs data trong hàm execs. Xem trực tiếp hàm _exec lõi cuối cùng:

Logic của hàm _exec cũng rất đơn giản, sau khi xác minh địa chỉ _to, dữ liệu sẽ được chuyển tiếp trực tiếp đến địa chỉ _to đã chỉ định. Và thông qua phân tích giao dịch tấn công, chúng ta có thể thấy rằng địa chỉ _to này thực sự là một địa chỉ hợp pháp chính thức.

Bước cuối cùng là gọi địa chỉ _to, đây là chức năng khởi tạo của hợp đồng AaveV2 Proxy được chỉ định chính thức và đặt địa chỉ độc hại của chính kẻ tấn công làm địa chỉ logic của hợp đồng AaveV2 Proxy. Thông qua phân tích hợp đồng Furucombo, có thể thấy rằng không có điểm bảo mật nghiêm trọng nào trong toàn bộ quá trình gọi và việc kiểm tra danh sách trắng cũng được thực hiện trên địa chỉ của cuộc gọi. Sau đó, vấn đề chỉ có thể nằm ở logic proxy tương ứng được gọi, nghĩa là hợp đồng Proxy AaveV2.

Chúng tôi trực tiếp phân tích logic của chức năng khởi tạo của hợp đồng AaveV2 Proxy:

Bạn có thể thấy rằng hàm khởi tạo là một hàm công khai và nó kiểm tra xem _implementation có phải là địa chỉ 0 ngay từ đầu hay không và nếu đó là địa chỉ 0 thì sẽ xảy ra lỗi. Mục đích của việc kiểm tra này thực ra là để kiểm tra xem _implementation đã được đặt chưa và nếu đã đặt thì không thể đặt lại. Theo cài đặt này, không khó để nhận ra rằng chức năng khởi tạo chỉ có thể được gọi một lần. Trừ khi Proxy AaveV2 chưa bao giờ thiết lập _implementation, cuộc gọi này sẽ không thành công. Có đúng là Furucombo chưa đặt _implementation tương ứng không? Với suy nghĩ này, chúng tôi kiểm tra các thay đổi trạng thái trong giao dịch. như sau:

Có thể thấy rằng nội dung được lưu trữ tại 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc đã bị thay đổi trong giao dịch và nội dung được viết chính xác là địa chỉ hợp đồng độc hại của chính kẻ tấn công 0x86765dde9304bea32f65330d266155 c4fa0 c4f04.

Và 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc là địa chỉ lưu trữ dữ liệu _implementation.

tóm tắt

tóm tắt

tiêu đề phụ

gợi ý

Hiện tại, do cuộc tấn công Furucombo, bất kỳ người dùng nào đã ủy quyền mã thông báo cho hợp đồng Furucombo (0x17e8ca1b4798b97602895f63206afcd1fc90ca5f) sẽ có nguy cơ bị mất tiền.

Liên kết tham khảo:

Liên kết tham khảo:

Giao dịch tấn công:https://approved.zone/

Giao dịch tấn công:

https://ethtx.info/mainnet/0x6a14869266a1dcf3f51b102f44b7af7d0a56f1766e5b1908ac80a6a23dbaf449

慢雾科技
作者文库