慢雾:Stars Arena 被黑简析

web3caff發佈於 2023-10-27更新於 2023-10-27

文章摘要

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

熱門幣種推薦

你可能也喜歡

Chainlink CCIP 加入央行数字货币试点项目

Chainlink的跨链互操作性协议CCIP正被用于多个央行的数字货币及资产代币化结算试点项目,标志着该协议进入了区块链基础设施领域重要的机构性实验场景。这些试点包括巴西的Drex数字雷亚尔计划、中国香港的Ensemble代币化沙盒网络,以及香港金融管理局的e-HKD+项目(涉及澳新银行的A$DC)。目前这些均为试验阶段,尚未投入商业生产,但具有重要意义,因为它们展示了受监管机构如何测试公共区块链基础设施概念。 央行的试点项目虽然多数不会立即转化为完整生产系统,但揭示了机构正在探索的方向,尤其是互操作性这一核心主题。未来金融体系很可能由多个受监管的网络、支付系统和结算层构成,因此安全可靠的跨链通信与价值传输成为关键基础设施需求。CCIP在这些试点中扮演了跨链消息传递和结算层的角色,用于测试支付对支付结算、跨境资产流动等场景。 对Chainlink而言,参与这些试点有助于强化其机构市场定位,表明其技术正在对可靠性、风险控制要求极高的环境中接受检验。然而,试点不等于正式采用,要实现持续的商业化采用仍需克服监管审批、技术整合和机构协调等多重挑战。整体来看,这反映了资产代币化结算正成为一个重要的机构议题,行业焦点已从简单的资产发行转向互操作性、跨境结算和可编程金融基础设施。

bitcoinist14 分鐘前

Chainlink CCIP 加入央行数字货币试点项目

bitcoinist14 分鐘前

XRP账本修订案临近验证节点投票截止日期

XRP Ledger(XRPL)即将进入一项关键验证者投票窗口期,决定是否激活拟议的协议修正案。这凸显了XRPL升级并非仅由开发代码发布驱动,而需经过网络治理流程。 修正案通过rippled发布流程和验证者投票系统推进。与其他XRPL变更类似,拟议修正案需要获得广泛验证者支持才能激活,通常要求达到并维持80%的验证者同意门槛持续一段时间。这一设计旨在确保升级审慎,避免仓促变更,让参与方有充分时间评估新功能。 验证者在XRPL治理中扮演核心角色,其投票决定直接影响协议是否引入新功能,进而塑造未来在支付、资产发行和去中心化交易所等方面的效用。虽然市场注意力常集中于价格波动,但此类协议升级对网络的长期发展更为关键,可能影响智能合约功能、资产特性、交易类型及运行可靠性。 需要明确的是,投票截止日期并不意味着升级必然激活。即使功能已包含在代码版本中,仍需获得足够且持续的支持。验证者可能支持、保留支持或要求更多审查,这是一个健康的决策过程。 对XRP而言,修正案进程之所以重要,是因为其长期价值与XRPL的实用性能紧密相连。协议的进步若能带来更多用例、更好的工具和更强的应用需求,才能真正提升网络效用。因此,当前进展更应被视为基础设施的推进,而非单纯的市场价格信号。 总之,XRPL正进入又一个治理检查点,本次投票将反映验证者对推动下一组协议变更的态度。

bitcoinist28 分鐘前

XRP账本修订案临近验证节点投票截止日期

bitcoinist28 分鐘前

Solana稳定币市值突破150亿美元,网络流动性不断深化

Solana稳定币总市值突破150亿美元,显示出该网络流动性进一步深化。这一里程碑数据来自DeFiLlama,表明Solana生态中的稳定币活动日益活跃,为交易、支付、去中心化金融(DeFi)和链上结算提供了更坚实的基础。 稳定币是链上金融的“营运资本”,用于交易出入场、协议借贷、流动性池和支付结算,其增长比单纯的投机活动更能体现网络的真实效用和流动性提升。Solana凭借低费用和快速确认的优势,吸引了大量美元流动性。 目前,USDC和USDT仍是主导,但Solana的稳定币生态正趋于多样化。这有助于DeFi协议、支付应用和机构产品的集成,但也带来了复杂性,用户需关注资产的流动性、可赎回性和风险。 稳定币的增长直接利好Solana DeFi和支付领域:借贷市场可深化,去中心化交易所的大额交易滑点更低,支付应用能结算更多价值。这强化了Solana将高性能与日益增长的流动性及用户友好应用相结合的核心叙事。 关键点在于,市场将关注这些稳定币是否被活跃使用,而不仅仅是供应量。Solana的挑战在于通过构建有吸引力的应用,将流动性沉淀下来。跨越150亿美元大关是一个重要信号,表明Solana正在构建支撑更大规模金融活动的基础,其发展叙事正逐渐脱离纯粹的炒作周期。

bitcoinist43 分鐘前

Solana稳定币市值突破150亿美元,网络流动性不断深化

bitcoinist43 分鐘前

XRP持有者转为盈利,但现货需求已消失:1.10美元支撑能否守住?

XRP近期市场结构发出矛盾信号:现货交易活动减弱,资金转向衍生品市场。尽管交易量持续下降,价格仍维持在1.086至1.113美元区间盘整,表明多空双方均未取得决定性优势。 通常情况下,现货活动减弱会降低投机兴趣。然而,XRP的未平仓合约却增加了约5.9%,达到4.238亿,同时预估杠杆率升至0.162。这种分化很关键,因为衍生品可以维持头寸而无需向市场注入新资金。随着现货流入和流出暴跌约99%,杠杆交易者日益成为XRP价格发现的主导力量。这也解释了价格为何持续盘整而非选择方向突破。但除非现货需求回归以验证这些头寸,否则不断增长的杠杆使XRP在市场情绪突变时极易遭遇急剧平仓。 市场可持续性的一个关键因素是持有者盈利状况。随着XRP的30日MVRV比率回升至1.03,近期买家已重返盈利状态。这一改善与比特币、以太坊等其他主流资产同步,表明投资者情绪正在广泛复苏,而非仅限于XRP。 盈利状态的改变也影响了市场激励机制。随着更多短期持有者脱离未实现亏损,持币压力通常会让位于获利了结的意愿。尽管XRP价格仍低于历史抛售区,但由于缺乏新的需求入场,且获利了结压力可能显现,当前价格走势的可持续性正面临越来越大的挑战。综上所述,虽然持有者恢复盈利,但涨势更多由衍生品市场的杠杆驱动,而非真实的现货需求。随着获利了结压力增大以及对可持续性的怀疑升温,1.10美元的支撑位正面临风险。

ambcrypto1 小時前

XRP持有者转为盈利,但现货需求已消失:1.10美元支撑能否守住?

ambcrypto1 小時前

交易

現貨

熱門文章

如何購買ZRX

歡迎來到HTX.com!在這裡,購買ZRX(0X) (ZRX)變得簡單而便捷。跟隨我們的逐步指南,放心開始您的加密貨幣之旅。第一步:創建您的HTX帳戶使用您的 Email、手機號碼在HTX註冊一個免費帳戶。體驗無憂的註冊過程並解鎖所有平台功能。立即註冊第二步:前往買幣頁面,選擇您的支付方式信用卡/金融卡購買:使用您的Visa或Mastercard即時購買ZRX(0X) (ZRX)。餘額購買:使用您HTX帳戶餘額中的資金進行無縫交易。第三方購買:探索諸如Google Pay或Apple Pay等流行支付方式以增加便利性。C2C購買:在HTX平台上直接與其他用戶交易。HTX 場外交易 (OTC) 購買:為大量交易者提供個性化服務和競爭性匯率。第三步:存儲您的ZRX(0X) (ZRX)購買ZRX(0X) (ZRX)後,將其存儲在您的HTX帳戶中。您也可以透過區塊鏈轉帳將其發送到其他地址或者用於交易其他加密貨幣。第四步:交易ZRX(0X) (ZRX)在HTX的現貨市場輕鬆交易ZRX(0X) (ZRX)。前往您的帳戶,選擇交易對,執行交易,並即時監控。HTX為初學者和經驗豐富的交易者提供了友好的用戶體驗。

407 人學過發佈於 2024.12.10更新於 2026.06.02

如何購買ZRX

相關討論

歡迎來到 HTX 社群。在這裡,您可以了解最新的平台發展動態並獲得專業的市場意見。 以下是用戶對 ZRX (ZRX)幣價的意見。

活动图片