Làm sáng tỏ hành vi thao túng giá Token TGBS - Phân tích tấn công

Bài viết này được dịch máy
Xem bản gốc

Token TGBS đã bị khai thác và cặp Token đã bị cạn kiệt do lỗ hổng trong hợp đồng Token TGBS, cho phép đốt số dư Token TGBS trong cặp. Tổng giá trị ước tính của số tiền khai thác được là khoảng 150.000 USD.

Tổng quan

Địa chỉ của kẻ tấn công:

https://bscscan.com/address/0xff1db040e4f2a44305e28f8de728dabff58f01e1

Giao dịch tấn công: https://bscscan.com/tx/0xa0408770d158af99a10c60474d6433f4c20f3052e54423f4e590321341d4f2a4

Hợp đồng dễ bị tổn thương ( Token TGBS): https://bscscan.com/address/0xedecfa18cae067b2489a2287784a543069f950f4

Phân tích khai thác

Nhìn vào giao dịch khai thác, chúng ta có thể thấy rằng hợp đồng tấn công của kẻ tấn công liên tục chuyển 1 wei Token TGBS cho chính nó. Để phân tích sâu hơn về cuộc tấn công, chúng ta nên kiểm tra chức năng transfer của hợp đồng Token TGBS.

Trong hàm _transfer , chúng ta có thể nhận thấy rằng hàm bên trong _burnPool được gọi để chuyển thông thường.

Điều đó có nghĩa là, đối với các giao dịch chuyển khoản thông thường, một lượng nhỏ 0,3% số dư Token _swapPair TGBS sẽ bị đốt theo định kỳ. Nếu kẻ tấn công có thể liên tục kích hoạt _burnPool , chúng có thể thao túng giá Token TGBS trong _swapPair một cách hiệu quả và kiếm lợi từ nó. Tuy nhiên, chúng ta có thể thấy hàm _burnPool được bảo vệ bởi biến _burnBlock , biến này sẽ được so sánh với block.number và tăng lên mỗi khi hàm này được gọi.

Chức năng duy nhất để đặt lại giá trị của _burnBlocksetBurnBlock , chức năng này chỉ chủ sở hữu hợp đồng mới có thể gọi.

Sau khi phân tích sâu hơn về các giao dịch gần đây có tên là hàm setBurnBlock , chúng tôi nhận thấy rằng hàm này được chủ sở hữu hợp đồng gọi vào lúc 2024-03-06 06:24:25. Cuộc tấn công xảy ra vào lúc 2024-03-06 07:27:55 (khoảng 1 giờ sau khi quản trị viên gọi setBurnBlock ). Sau cuộc tấn công, _burnBlock đã được quản trị viên đặt lại về giá trị bình thường vào lúc 2024-03-06 07:38:37.

Phần kết luận

Chúng tôi vẫn chưa rõ liệu việc khai thác này có phải là một Rug Pull hay không. Tuy nhiên, việc gọi một hàm có thể thay đổi giá trị của các biến nội bộ quan trọng mà không có bất kỳ nhận thức bảo mật hoặc thông báo công khai nào cho người dùng là không nên trong mọi trường hợp.

Nguồn
Tuyên bố từ chối trách nhiệm: Nội dung trên chỉ là ý kiến của tác giả, không đại diện cho bất kỳ lập trường nào của Followin, không nhằm mục đích và sẽ không được hiểu hay hiểu là lời khuyên đầu tư từ Followin.
Thích
Thêm vào Yêu thích
Bình luận