Mã thông báo AIZPT đã bị khai thác vào ngày 5 tháng 10 năm 2024, dẫn đến ước tính thiệt hại khoảng 20.000 USD tại thời điểm khai thác. Nguyên nhân gốc rễ của sự khai thác này là do thực hiện không chính xác việc tính toán giá trong quá trình mua mã thông báo.
Tổng quan
Hợp đồng tấn công: https://bscscan.com/address/0x8408497c18882bfb61be9204cfff530f4ee18320
Hợp đồng dễ bị tấn công: https://bscscan.com/address/0xbe779d420b7d573c08eee226b9958737b6218888
Giao dịch tấn công: https://bscscan.com/tx/0x5e694707337cca979d18f9e45f40e81d6ca341ed342f1377f563e779a746460d
Phân tích khai thác
Hợp đồng mã thông báo AIZPT cho phép người dùng mua và bán trực tiếp mã thông báo, với phí 50% khi mua mã thông báo và 50% mã thông báo bị đốt khi bán.
Vấn đề nằm ở công thức được sử dụng để mua mã thông báo. Họ sử dụng công thức của hàm quote từ Uniswap V2. Mặc dù hàm này hữu ích để hiểu tỷ lệ dự trữ hoặc thanh khoản, nhưng nó không phù hợp để xác định giá giao dịch thực tế.
Với công thức này, người dùng có thể khai thác hệ thống bằng cách mua mã thông báo với giá thấp và bán chúng với giá cao để thu lợi nhuận (ngay cả sau khi bị tính phí 50%) bằng cách sử dụng hàm bán, sử dụng công thức getAmountOut từ Uniswap V2.
Kẻ tấn công đã vay tạm thời 8000 BNB và sử dụng nó để mua mã thông báo AIZPT. Sau đó, họ bán lại mã thông báo nhiều lần, kiếm được lợi nhuận 34,88 BNB.
Bài học kinh nghiệm
Các nhà phát triển phải xem xét kỹ lưỡng và hiểu logic của các hợp đồng bên thứ ba khi tích hợp chúng với logic tùy chỉnh của họ để ngăn ngừa bất kỳ sự không nhất quán nào.
Rất được khuyến nghị tiến hành kiểm định bảo mật, cho dù đó là một hợp đồng ERC20 đơn giản với một số thay đổi nhỏ hay một giao thức DeFi phức tạp với hàng trăm nghìn dòng mã.





