慢雾:Stars Arena 被黑简析

web3caffPublié le 2023-10-27Dernière mise à jour le 2023-10-27

Résumé

本文将简析攻击者是如何利用 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 立场无关。文章内的信息仅供参考,均不构成任何投资建议及要约,并请您遵守所在国家或地区的相关法律法规。

Lectures associées

UBS : La concentration des actions technologiques chinoises A est loin d'avoir atteint un pic historique

Résumé : L'actionnariat des valeurs technologiques chinoises (A-shares) est loin d'être aussi concentré qu'aux sommets historiques, selon une analyse récente d'UBS. Bien que le volume des transactions et la capitalisation du secteur de la mégatechnologie (électronique, communication, informatique, défense) aient atteint des niveaux record, le niveau de surpondération des fonds communs de placement, indicateur clé de la concentration des positions institutionnelles, s'élève à 9,9 % au premier trimestre 2026. Ce chiffre est inférieur au pic historique de 14,1 % de fin 2015 et très en deçà du pic de 18,7 % du secteur de la consommation. La phase actuelle de surperformance des valeurs de croissance technologique dure depuis moins de deux ans, alors que les cycles stylistiques historiques durent généralement environ trois ans, indiquant un potentiel de prolongation. Par ailleurs, la reprise des bénéfices des entreprises soutient le marché. UBS prévoit une croissance du bénéfice de 11 % pour l'ensemble des A-shares en 2026, après 3,9 % en 2025. Au premier trimestre 2026, les bénéfices des sociétés non financières ont progressé de 11,8 % en glissement annuel, avec des marges au plus haut depuis 2023. Sur le plan tactique, UBS privilégie les styles croissance et cyclique dans son scénario de référence « hausse modérée », avec une surpondération sur six secteurs : électronique, communication, équipement électrique, machines, métaux non ferreux et produits chimiques.

marsbitIl y a 1 h

UBS : La concentration des actions technologiques chinoises A est loin d'avoir atteint un pic historique

marsbitIl y a 1 h

Officiers de la Fed : le choix actuel est entre la patience et la hausse des taux, l'inflation est le risque économique n°1, l'IA n'a pas encore d'impact

Des responsables de la Réserve fédérale américaine (Fed) ont émis des signaux plutôt fermes concernant l'inflation et la trajectoire des taux d'intérêt. Lors de prises de parole jeudi, ils ont indiqué que le principal dilemme actuel de la Fed est de choisir entre maintenir sa patience en laissant les taux stables, ou procéder à une nouvelle hausse pour contenir une inflation persistante. Jeffrey Schmid, de la Fed de Kansas City, a clairement identifié l'inflation comme le risque numéro un pour l'économie et a, pour la première fois, évoqué une hausse des taux comme une option, sans mentionner de futures baisses. Mary Daly, de la Fed de San Francisco, a estimé que la politique monétaire était actuellement bien positionnée, mais qu'en raison d'une grande incertitude économique, la Fed devait se préparer à agir dans les deux sens (hausse ou baisse) et éviter des orientations prématurées qui pourraient induire le marché en erreur. Les contrats sur les taux d'intérêt montrent que les investisseurs anticipent désormais une probabilité élevée d'une hausse cette année. Concernant l'intelligence artificielle (IA), Mary Daly a déclaré qu'elle n'avait actuellement aucun impact significatif sur l'inflation ou la productivité à grande échelle, et que ses effets déflationnistes potentiels n'étaient pas une préoccupation immédiate pour la politique monétaire. Thomas Barkin, de la Fed de Richmond, a pour sa part noté un marché du travail équilibré, sans tensions excessives. La prochaine réunion du Comité fédéral de l'open market (FOMC) est prévue les 16 et 17 juin.

marsbitIl y a 1 h

Officiers de la Fed : le choix actuel est entre la patience et la hausse des taux, l'inflation est le risque économique n°1, l'IA n'a pas encore d'impact

marsbitIl y a 1 h

Trading

Spot
Futures

Articles tendance

Comment acheter ZRX

Bienvenue sur HTX.com ! Nous vous permettons d'acheter ZRX(0X) (ZRX) de manière simple et pratique. Suivez notre guide étape par étape pour commencer votre parcours crypto.Étape 1 : Création de votre compte HTXUtilisez votre adresse e-mail ou votre numéro de téléphone pour ouvrir un compte sur HTX gratuitement. L'inscription se fait en toute simplicité et débloque toutes les fonctionnalités.Créer mon compteÉtape 2 : Choix du mode de paiement (rubrique Acheter des cryptosCarte de crédit/débit : utilisez votre carte Visa ou Mastercard pour acheter instantanément ZRX(0X) (ZRX).Solde :utilisez les fonds du solde de votre compte HTX pour trader en toute simplicité.Prestataire tiers :pour accroître la commodité d'utilisation, nous avons ajouté des modes de paiement populaires tels que Google Pay et Apple Pay.P2P :tradez directement avec d'autres utilisateurs sur HTX.OTC (de gré à gré) : nous offrons des services personnalisés et des taux de change compétitifs aux traders.Étape 3 : stockage de vos ZRX(0X) (ZRX)Après avoir acheté vos ZRX(0X) (ZRX), stockez-les sur votre compte HTX. Vous pouvez également les envoyer ailleurs via un transfert sur la blockchain ou les utiliser pour trader d'autres cryptos.Étape 4 : tradez des ZRX(0X) (ZRX)Tradez facilement ZRX(0X) (ZRX) sur le marché Spot de HTX. Il vous suffit d'accéder à votre compte, de sélectionner la paire de trading, d'exécuter vos trades et de les suivre en temps réel. Nous offrons une expérience conviviale aux débutants comme aux traders chevronnés.

156 vues totalesPublié le 2024.12.10Mis à jour le 2026.06.02

Comment acheter ZRX

Discussions

Bienvenue dans la Communauté HTX. Ici, vous pouvez vous tenir informé(e) des derniers développements de la plateforme et accéder à des analyses de marché professionnelles. Les opinions des utilisateurs sur le prix de ZRX (ZRX) sont présentées ci-dessous.

活动图片