Phân tích ngắn gọn về sự cố tấn công SushiSwap từ góc nhìn nhỏ
慢雾科技
2020-11-30 13:37
本文约1303字,阅读全文需要约5分钟
Sushi điên rồ, rủi ro tiềm ẩn.

Bởi : yudan@đội an ninh sương mù chậm

tiêu đề phụ

nguồn cấp dữ liệu nền

quá trình tấn công

quá trình tấn công

1. Kẻ tấn công chọn một cặp giao dịch trong Sushi Swap, chẳng hạn như USDT/WETH, sau đó thêm thanh khoản để lấy SLP tương ứng (Bằng chứng thanh khoản USDT/WETH, sau đây gọi là SLP) và sử dụng SLP thu được cùng một lượng nhỏ khác của WETH để tạo cặp giao dịch Sushi Swap mới sau đó sẽ nhận được bằng chứng thanh khoản SLP1 (WETH/SLP(USDT/WETH), sau đây gọi là SLP1) của nhóm mã thông báo mới và chuyển nó sang hợp đồng Sushi Maker.

2. Gọi chức năng chuyển đổi của Sushi Swap, token0 đến là SLP thu được ở bước đầu tiên và token1 là WETH. Sau khi gọi chức năng chuyển đổi, hợp đồng Sushi Maker sẽ gọi chức năng ghi của nhóm mã thông báo bao gồm mã thông báo0 và mã thông báo1 để ghi SLP1, ghi SLP1 mà kẻ tấn công đã nhập vào hợp đồng Sushi Maker trong bước đầu tiên và lấy WETH và SLP .

3. Chức năng chuyển đổi của hợp đồng Sushi Maker sau đó sẽ gọi hàm _toWETH nội bộ để chuyển đổi các mã thông báo thu được bằng cách đốt cháy thành WETH, bởi vì trong bước thứ hai, hợp đồng Sushi Maker đã nhận được SLP và WETH thông qua việc đốt cháy. Trong số đó, WETH không cần chuyển đổi, chỉ cần chuyển đổi SLP. Tại thời điểm này, việc chuyển đổi sẽ được thực hiện bằng cách gọi cặp giao dịch SLP/WETH, đây là cặp giao dịch được tạo bởi kẻ tấn công trong bước đầu tiên. Vì hợp đồng Sushi Maker chuyển đổi tất cả số dư của (token0) thành WETH trong quá trình chuyển đổi, mã thông báo0 được chuyển vào đây là SLP, vì vậy hợp đồng sẽ chuyển đổi tất cả SLP trong hợp đồng thông qua cặp giao dịch SLP/WETH (SLP được trao đổi bao gồm USDT/ Thu nhập được tạo bởi mỗi lần hoán đổi giao dịch WETH và SLP thu được từ hợp đồng thông qua chức năng ghi trong bước thứ hai). Nhóm mã thông báo SLP / WETH được tạo bởi kẻ tấn công. Kẻ tấn công chỉ cần thêm một lượng nhỏ WETH tại thời điểm khởi tạo và có thể đổi một lượng nhỏ WETH cho giao dịch tương ứng trong hợp đồng Sushi Maker trong quá trình trao đổi của cặp giao dịch Sushi Maker. Tất cả các SLP đều đúng.

tóm tắt

tóm tắt

Kẻ tấn công sử dụng SLP và WETH để tạo nhóm mã thông báo mới, sử dụng SLP1 của nhóm mã thông báo mới để chuyển đổi trong Sushi Maker, sử dụng một lượng nhỏ SLP để chuyển tất cả SLP trong hợp đồng Sushi Maker sang nhóm mã thông báo do chính anh ta tạo ra, Tất cả phí xử lý của cặp giao dịch tương ứng trong một khoảng thời gian nhất định sẽ được thu. Và lặp lại quy trình cho các cặp giao dịch khác, tiếp tục kiếm lợi nhuận.

慢雾科技
作者文库