Tiêu đề gốc: " Game of Thrones - Phân tích hack DAO Maker 》
Nguồn gốc: SlowMist Technology
Vào ngày 12 tháng 8 năm 2021, theo tin tức từ SlowMist District, vườn ươm mã hóa DAO Maker đã được bị nghi ngờ Bị hacker tấn công dẫn đến một lượng lớn USDC bị chuyển ra khỏi hợp đồng. Đội ngũ bảo mật SlowMist đã ngay lập tức can thiệp vào quá trình phân tích và chia sẻ kết quả phân tích như sau.
Trong cuộc tấn công này, kẻ tấn công đã triển khai và tạo nguồn mở cho một hợp đồng tấn công (0x1c) để nhanh chóng trở thành nạn nhân hàng loạt từ DAO Maker. Ăn cắp tiền từ hợp đồng (0x41).
Địa chỉ của kẻ tấn công 1: span>
0xd8428836ed2a36bd67cd5b157b50813b30208f50
Địa chỉ của kẻ tấn công 2:
0xef9427bf15783fb8e6885f9b5f5da1fba66ef931
p>
Hợp đồng tấn công:
0x1c93290202424902a5e708b95f4ba23a3f2f3cee
Hợp đồng nạn nhân của DAO Maker:
0x41B856701BB8c24CEcE2Af10651BfAfEbb57cf49
Nạn nhân của DAO Maker người triển khai hợp đồng: 0x054e71D5f096a0761dba7dBe5cEC5E2Bf898971c
Quản trị viên hợp đồng nạn nhân của DAO Maker:0x0eba461d9829c4e464a68d4857350476cfb6f559
Sự khác biệt giữa cuộc tấn công này và các cuộc tấn công thông thường là hợp đồng nạn nhân DAO Maker (0x41) không phải là nguồn mở mà là hợp đồng tấn công (0x1c).

Từ Chúng ta có thể thấy từ hợp đồng tấn công nguồn mở và các bản ghi trên chuỗi trong hình trên:
1. Hacker gọi hàm h của hợp đồng tấn công (0x1c). Hàm h sẽ lặp để gọi hàm f. Hàm f lấy số tiền gửi USDC của người dùng thông thường trong hợp đồng nạn nhân (0x41) thông qua 0x4b4f892a của hợp đồng nạn nhân DAO Maker.
2. Sau đó, hàm h gọi hàm drawFromUser(0x50b158e4) của hợp đồng nạn nhân DAO Maker ( 0x41) , chuyển địa chỉ người dùng gửi tiền của người dùng, địa chỉ USDC và số tiền cần rút.
3. Sau đó, hợp đồng nạn nhân của DAO Maker (0x41) chuyển USDC trong hợp đồng sang hợp đồng tấn công Trung bình (0x1c).
Qua phân tích hành vi trên, chúng ta có thể thấy rằng: hợp đồng tấn công (0x1c) gọi Chức năng rút khỏi người dùng của hợp đồng nạn nhân (0x41 ), hợp đồng nạn nhân (0x41) sẽ trực tiếp chuyển số tiền được quản lý bởi hợp đồng sang hợp đồng tấn công (0x1c). Chúng tôi trực tiếp dịch ngược hợp đồng nạn nhân (0x41) và xem hàm drawFromUser để phân tích đơn giản:
Thông qua mã dịch ngược, chúng ta có thể thấy rằng chức năng này có kiểm tra quyền, chỉ hợp đồng DAO Chức năng này có thể được gọi để chuyển tiền của người dùng. Nhưng hợp đồng tấn công (0x1c) rõ ràng không phải là hợp đồng DAO, vì vậy hợp đồng DAO của nó chắc chắn đã được kẻ tấn công thay thế.
Thông qua phân tích trên chuỗi, chúng ta có thể thấy rõ:
1. Người triển khai hợp đồng nạn nhân (0x05) triển khai hợp đồng nạn nhân (0x41) lúc 08:33:45 UTC ngày 12 tháng 4. 0x0eba461d9829c4e464a68d4857350476cfb6f559 Địa chỉ được đặt thành vai trò quản trị viên:
Băm Tx:
0xa1b4fceb671bb70ce154a69c2f4bd6928c11d98cbcfbbff6e5cdab9961bf0e6d

2. Sau đó, người triển khai hợp đồng nạn nhân (0x05) đã từ bỏ việc quản lý hợp đồng nạn nhân (0x41) bằng cách gọi hàm revokeRole. Quyền:
Tx Hash:
0x773613398f08ddce2cc9dcb6501adf4f5f159b4de4e9e2774a559bb1c588c1b8

3 . Và quản lý Nhà điều hành đặt hợp đồng DAO là hợp đồng tấn công (0x1c) lúc 01:27:39 UTC 12 tháng 8:
Tx Hash:
0x2fba930502d27f9c9a2f2b9337a0149534dda7527029645752b2a6507ca6b0d6

Do đó kẻ tấn công có thể sử dụng hợp đồng tấn công này ( 0x1c) Ăn cắp tiền của người dùng trong hợp đồng nạn nhân (0x41). Số tiền bị đánh cắp hiện đã được chuyển đổi thành ETH và được chuyển đến địa chỉ kẻ tấn công 2 (0xef).
Cuộc tấn công này có thể xuất phát từ việc rò rỉ khóa riêng của quản trị viên trong hợp đồng nạn nhân DAO Maker. Sau khi đánh cắp khóa riêng, kẻ tấn công đã thay thế hợp đồng DAO của hợp đồng nạn nhân bằng hợp đồng tấn công và kẻ tấn công đã chuyển tiền của người dùng trong hợp đồng thông qua hợp đồng được thay thế. Vì người triển khai hợp đồng từ bỏ quyền quản lý hợp đồng sau khi thiết lập quản trị viên hợp đồng nên nhóm dự án hiện tại có thể không lấy lại được quyền kiểm soát hợp đồng một cách hiệu quả.
Liên kết gốc a>
Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:
Nhóm Telegram đăng ký: https://t.me/theblockbeats
Nhóm Telegram thảo luận: https://t.me/BlockBeats_App
Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia