Skip to content
On this page

危机时刻!2000万 DVT 币命悬一线,你能否成为拯救者?

挑战地点: Damn Vulnerable DeFi - Wallet Mining

紧迫信号! 一个旨在奖励用户部署 Safe 钱包的智能合约,目前正面临一场史无前例的危机。高达 2000 万枚 DVT 代币,原本被寄予厚望将安全地交给一位用户,却因为一个神秘丢失的 “nonce” 而陷入了岌岌可危的境地。更糟的是,传言四起,系统内部可能存在一个未被发现的漏洞,让所有参与者心急如焚。

你的任务: 你,作为唯一被赋予信任的人,已经获得了用户的私钥。现在,你必须以迅雷不及掩耳之势,在单一交易中完成以下几项至关重要的任务:

  1. 夺回合约财富: 从 Wallet Deployer 合约中,将所有 DVT 代币安全地转移出来。
  2. 奖励“护卫者”: 将这些 DVT 代币发送到指定的“ward”(护卫者)地址,这是合约的预设奖励机制。
  3. 保障用户资产: 同时,确保用户账户中的所有资产也得到安全保存。

为什么这如此关键?

  • 丢失的 Nonce: 部署 Safe 钱包的关键参数 nonce 丢失,导致无法按预期进行部署,也无法正确追踪 DVT 代币的去向。
  • 授权机制的陷阱: 合约集成了一个升级版的授权机制,只有特定的“ward”才能在特定部署情况下获得 DVT 奖励。这意味着你需要理解并绕过这个机制。
  • 潜在的漏洞: 笼罩在系统之上的漏洞传闻,让情况更加复杂和危险,必须在攻击者利用之前迅速行动。
  • 升级代理的复杂性: 合约利用了 TransparentProxyAuthorizerUpgradeable,这增加了理解和与之交互的难度。你需要深入了解它们的运作方式。
  • Safe Factory 的秘密: 你需要利用已部署的 Safe Singleton Factory 来完成 Safe 钱包的部署,但你需要正确计算出丢失的 nonce

你的武器库:

你将有机会接触到以下核心合约:

  • WalletDeployer.sol: 负责 DVT 代币奖励的部署合约,但存在 nonce 问题和授权机制。
  • AuthorizerFactory.sol & AuthorizerUpgradeable.sol: 负责管理授权逻辑的代理合约,你需要理解 can 方法和 init 函数。
  • TransparentProxy.sol: 升级代理的基石,理解其 _fallback 逻辑至关重要。
  • SafeSingletonFactory.sol & CreateX.sol: 提供部署 Safe 钱包所需的基础工具。

这是一场与时间的赛跑,也是一场智力的博弈。 你需要结合对 Solidity 智能合约的深刻理解,特别是代理模式、ERC20 代币交互,以及精确的链上数据分析能力。

准备好迎接挑战了吗?

立即前往 Damn Vulnerable DeFi - Wallet Mining,证明你的能力,成为这场数字危机中的英雄!在交易失败前,拯救这 2000 万枚 DVT 代币,并安抚焦急的用户。

记住,只有一次机会,而且必须在单一交易中完成!


Built with AiAda