慢雾:Stars Arena 被黑简析

web3caffXuất bản vào 2023-10-27Cập nhật gần nhất vào 2023-10-27

Tóm tắt

本文将简析攻击者是如何利用 Stars Arena 的重入漏洞获利。

本文将简析攻击者是如何利用 Stars Arena 的重入漏洞获利。
作者:慢雾安全团队,慢雾科技
背景
据慢雾 MistEye 系统安全预警,2023 年 10 月 7 日,Avalanche 链上社交协议 Stars Arena 遭攻击,损失约 290 万美元。慢雾安全团队简析该攻击事件并将结果分享如下。
相关信息
攻击者地址:
https://snowtrace.io/address/0xa2ebf3fcd757e9be1e58b643b6b5077d11b4ad7a
攻击合约:
https://snowtrace.io/address/0x7f283edc5ec7163de234e6a97fdfb16ff2d2c7ac
https://snowtrace.io/address/dd9afc0e3c43951659c8ebe7aef9ee40879863ea
攻击交易:
https://snowtrace.io/tx/0x4f37ffecdad598f53b8d5a2d9df98e3c00fbda4328585eb9947a412b5fe17ac5
攻击核心
攻击者利用重入漏洞,篡改自己存款份额所对应的价格。随后在卖出时,又因该恶意操纵的价格计算依赖,导致类似的价格操控。通过精确计算重入时更新的份额价格,攻击者窃取了合约中的资金。
交易分析
我们可以发现攻击交易中存在一笔重入调用,我们通过反编译代码逐步分析调用方式。

攻击者先创建攻击合约(0x7f283 和 0xdd9af),通过攻击合约调用 Stars Arena: Shares 合约的 0xe9ccf3a3 方法,然后存入 1 枚 AVAX 代币。

根据反编译后的代码一步步跟踪,攻击者首先用的 0xe9ccf3a3 方法是一个类似于存款的函数,其中会调用 0x326c 和 0x2058 方法。0x326c 方法仅作为参数返回的调用,而 0x2058 方法类似于一个处理某种代币购买或交换的函数,该方法通过 0xe9ccf3a3 所传入的 AVAX 代币数额及地址来进行下一步操作及份额和费用的计算。

跟进 0x2058 方法第 92 行的调用逻辑,可以发现 0x1a9b 方法为一个计算函数,计算出的结果是一个类似于价格的值,其返回值为新计算出的 v24 / 0xde0b6b3a7640000 或者是 _initialPrice。
之后的 109 行,110 行及 116 行的 0x307c 和 0x30ef 方法中就存在 low-level call 的调用,而 0x30ef 的 call 还是对 varg1 也就是传入的 0xdd9af 攻击合约地址的外部调用。函数没有防重入锁的约束,并且在执行完外部调用后,此方法才会向下执行之后的 if 判断来更新 field0.length 及 field0 参数。毫无疑问,重入就是在此处发生的。

我们再来看攻击者在重入调用中构造的数据。

重入外部调用的是 0x5632b2e4 方法,并传入攻击者所构造的的 4 个参数,这些参数通过进制转化 153005ce00 为 91000000000。
正如上面讲到的,对 0x5632b2e4 方法的外部调用是执行在 if (varg0 == _getMyShares[address(varg1)][msg.sender]) 判断之前。这时 field0.lengt 值为 0, 并未更新。攻击者正好通过这个方式绕过 0x5632b2e4 方法中的判断,将 msg.sender 也就是攻击合约 0xdd9af 的以下 4 个参数状态都修改为了外部调用是时构造的数据。

通过以上操作之后,攻击者调用了 sellShares 来卖出自己的份额,获得了 266,102.97278 枚 AVAX。

深入 sellShares 函数,函数起先就调用了 0x1a9b 方法,而在之前的 0x2058 方法中就曾存在调用,是处理某种代币购买或交换的函数。我们可以发现,在 0x1a9b 方法中的 0x2329 方法会更新 owner_9f[varg0],而这个参数在重入时就已经被修改为攻击者所构造的 91000000000。

回到 0x1a9b 方法中,根据之前恶意构造的值重新计算(计算数额见注释)。

经过以上计算,新计算出的份额所对应的价格发生了改变,计算出的结果为 274,333.061476814e18。再经过一系列的费用收取过后,攻击者在没有修改份额的情况下使用恶意构造操纵的价格,卖出份额,成功获利。
总结
本次攻击的核心在于重入攻击所造成的价格计算依赖更新,进而导致了类似恶意价格操控。慢雾安全团队建议项目方应尽可能在经过多家安全公司审计后,再进行合约的部署发布;同时在编码时应尽可能满足 Checks-Effects-Interactions 编码规范,添加防重入锁。
免责声明:作为区块链信息平台,本站所发布文章仅代表作者及嘉宾个人观点,与 Web3Caff 立场无关。文章内的信息仅供参考,均不构成任何投资建议及要约,并请您遵守所在国家或地区的相关法律法规。

Nội dung Liên quan

Peter Todd Cảnh Báo Công Nghệ Zcash Quá Rủi Ro Cho Nỗ Lực Tăng Cải Thiện Tính Riêng Tư Của Bitcoin

Nhà phát triển Bitcoin Peter Todd đã phản đối các đề xuất đưa tính năng bảo mật kiểu Zcash vào tầng đồng thuận của Bitcoin, lập luận rằng hồ sơ rủi ro mật mã quá cao cho giao thức cơ sở của mạng. Cuộc tranh luận nổ ra sau khi các nhà phát triển ZODL tiết lộ một sự cố ảnh hưởng đến "bể được bảo vệ" Orchard, biến một sự kiện kỹ thuật thành cuộc tranh cãi rộng hơn về quyền riêng tư, khả năng kiểm toán và sự "hóa thạch" của Bitcoin. Todd nhấn mạnh sự khác biệt giữa lỗi thấy được và ẩn. Ông lập luận rằng mô hình kế toán minh bạch của Bitcoin giúp dễ dàng phát hiện và hoàn tác các lỗi thảm khốc, như trong sự cố tràn giá trị năm 2010, vì đồng tiền giả mạo có thể nhìn thấy rõ trên chuỗi. Ngược lại, trong một hệ thống được bảo vệ sâu như Zcash, thiệt hại có thể khó quan sát hơn, khó quy kết hơn và khó đảo ngược hơn. Ông cho rằng mật mã kiểu Zcash có mức độ rủi ro hoạt động rất cao, được phản ánh qua việc Zcash đã gặp nhiều vấn đề nghiêm trọng hơn Bitcoin. Mặc dù một số người dùng phản biện rằng Bitcoin cũng có lỗi nghiêm trọng, Todd bác bỏ sự so sánh, nói rằng những sự cố đó không đặt đồng tiền vào cùng loại rủi ro tồn vong. Lập luận trọng tâm của ông là tính riêng tư có thể làm giảm khả năng hiển thị vốn giúp việc kiểm toán nguồn cung trở nên đơn giản, từ đó thay đổi cách tính toán rủi ro cho Bitcoin. Bên bảo vệ Zcash phản đối cách đặt vấn đề này, lập luận rằng không có lỗi nào có thể ảnh hưởng đến tổng nguồn cung ZEC. Tuy nhiên, Todd chuyển trọng tâm từ tổng nguồn cung sang số dư của người dùng được bảo vệ, lưu ý rằng 30% nguồn cung Zcash đã nằm trong bể được bảo vệ và việc số này bị phá hủy sẽ là thảm họa.

bitcoinist1 giờ trước

Peter Todd Cảnh Báo Công Nghệ Zcash Quá Rủi Ro Cho Nỗ Lực Tăng Cải Thiện Tính Riêng Tư Của Bitcoin

bitcoinist1 giờ trước

Quan chức Fed: Hiện cần lựa chọn giữa kiên nhẫn hoặc tăng lãi suất, lạm phát là rủi ro hàng đầu của nền kinh tế, AI hiện chưa ảnh hưởng

Các quan chức Cục Dự trữ Liên bang (Fed) đã đưa ra những tín hiệu thiên diều hâu về lạm phát và lộ trình lãi suất. Chủ tịch Fed Kansas City, Jeffrey Schmid, nhấn mạnh lạm phát là rủi ro số một đối với nền kinh tế Mỹ và lần đầu tiên công khai đưa việc tăng lãi suất vào thảo luận, không đề cập đến khả năng cắt giảm. Ông đặt câu hỏi liệu Fed nên kiên nhẫn chờ đợi hay hành động tăng lãi suất để kiềm chế áp lực giá cả dai dẳng. Chủ tịch Fed San Francisco, Mary Daly, cho rằng chính sách tiền tệ đang ở vị trí phù hợp nhưng triển vọng kinh tế không chắc chắn, việc đưa ra hướng dẫn trước có thể gây hiểu lầm. Bà khẳng định Fed đã sẵn sàng ứng phó theo cả hai hướng. Bà cũng nhận định AI hiện không phải là yếu tố đẩy hay kéo lạm phát, và tác động nâng cao năng suất quy mô lớn từ AI vẫn chưa xuất hiện trong dữ liệu vĩ mô, mặc dù nó có khả năng giảm phát trong dài hạn. Chủ tịch Fed Richmond, Thomas Barkin, nhận định thị trường lao động đang cân bằng, không có dấu hiệu căng thẳng. Các nhận định này củng cố lập trường chờ đợi thêm dữ liệu của Fed. Thị trường kỳ vọng Fed sẽ giữ nguyên lãi suất tại cuộc họp tháng 6.

marsbit1 giờ trước

Quan chức Fed: Hiện cần lựa chọn giữa kiên nhẫn hoặc tăng lãi suất, lạm phát là rủi ro hàng đầu của nền kinh tế, AI hiện chưa ảnh hưởng

marsbit1 giờ trước

Giao dịch

Giao ngay
Hợp đồng Tương lai

Bài viết Nổi bật

Làm thế nào để Mua ZRX

Chào mừng bạn đến với HTX.com! Chúng tôi đã làm cho mua ZRX(0X) (ZRX) trở nên đơn giản và thuận tiện. Làm theo hướng dẫn từng bước của chúng tôi để bắt đầu hành trình tiền kỹ thuật số của bạn.Bước 1: Tạo Tài khoản HTX của BạnSử dụng email hoặc số điện thoại của bạn để đăng ký tài khoản miễn phí trên HTX. Trải nghiệm hành trình đăng ký không rắc rối và mở khóa tất cả tính năng. Nhận Tài khoản của tôiBước 2: Truy cập Mua Crypto và Chọn Phương thức Thanh toán của BạnThẻ Tín dụng/Ghi nợ: Sử dụng Visa hoặc Mastercard của bạn để mua ZRX(0X) (ZRX) ngay lập tức.Số dư: Sử dụng tiền từ số dư tài khoản HTX của bạn để giao dịch liền mạch.Bên thứ ba: Chúng tôi đã thêm những phương thức thanh toán phổ biến như Google Pay và Apple Pay để nâng cao sự tiện lợi.P2P: Giao dịch trực tiếp với người dùng khác trên HTX.Thị trường mua bán phi tập trung (OTC): Chúng tôi cung cấp những dịch vụ được thiết kế riêng và tỷ giá hối đoái cạnh tranh cho nhà giao dịch.Bước 3: Lưu trữ ZRX(0X) (ZRX) của BạnSau khi mua ZRX(0X) (ZRX), lưu trữ trong tài khoản HTX của bạn. Ngoài ra, bạn có thể gửi đi nơi khác qua chuyển khoản blockchain hoặc sử dụng để giao dịch những tiền kỹ thuật số khác.Bước 4: Giao dịch ZRX(0X) (ZRX)Giao dịch ZRX(0X) (ZRX) dễ dàng trên thị trường giao ngay của HTX. Chỉ cần truy cập vào tài khoản của bạn, chọn cặp giao dịch, thực hiện giao dịch và theo dõi trong thời gian thực. Chúng tôi cung cấp trải nghiệm thân thiện với người dùng cho cả người mới bắt đầu và người giao dịch dày dạn kinh nghiệm.

Tổng lượt xem 170Xuất bản vào 2024.12.10Cập nhật vào 2026.06.02

Làm thế nào để Mua ZRX

Thảo luận

Chào mừng đến với Cộng đồng HTX. Tại đây, bạn có thể được thông báo về những phát triển nền tảng mới nhất và có quyền truy cập vào thông tin chuyên sâu về thị trường. Ý kiến ​​của người dùng về giá của ZRX (ZRX) được trình bày dưới đây.

活动图片