DeFi协议Akropolis被盗200万美元 被PeckShield技术拆解揭秘

OKX欧易app

OKX欧易app

欧易交易所app是全球排名第一的虚拟货币交易所,注册领取6万元盲盒礼包!

APP下载   官网注册
黑客利用Akropolis合约漏洞连续实施了17次重入攻击,导致其yCurve和sUSD资金池损失了203万枚DAI。

原文标题:《DeFi协议Akropolis漏洞详解:黑客复现「经典重入攻击」掳走203万DAI》撰文:PeckShield

昨天晚间19时50分,DeFi协议Akropolis遭到了黑客攻击。

区块链安全公司PeckShield(派盾)安全人员迅速定位到问题在于,Akropolis项目的SavingsModule合约在处理用户存储资产时存在某种缺陷,黑客利用此缺陷连续实施了17次重入攻击,导致其YCurve和sUSD资金池损失了203万枚DAI。

技术概要

本次攻击的原因如下:1. 合约没有对用户存储的Token进行白名单校验2. 关键的deposit函数没有对重入攻击的保护

简单而言:黑客利用Akropolis项目存在的存储资产校验缺陷,向合约发起连续多次的重入攻击,致使Akropolis合约在没有新资产注入的情况下,凭空增发了大量的pooltokens,进而再利用这些pooltokens从YCurve和sUSD池子中提取DAI,最终导致项目合约损失了203万枚DAI。

攻击过程详解

攻击流程复现:我们通过分析黑客实施攻击的交易哈希(0xe1f375a47172b5612d96496a4599247049f07c9a7d518929fbe296b0c281e04d)发现,攻击来自于一个恶意的ERC20合约地址(0xe2307837524Db8961C4541f943598654240bd62f)

这个恶意合约实现了一个钩子函数,使得函数在transferFrom(functionsignature:0x23b872dd)被调用的时候会被执行。

攻击者先是调用SavingsModule.sol中的deposit函数,并将自己编写的位于0xe230开头的恶意合约其钩子函数会再次调用deposit函数并存入真实的DAI资产。

由于pooltokens增发的量通过代币deposit前后余额的差值得出。所以第二次deposit的真实的DAI资产会被计算两次用于铸造pooltokens。第一次是在恶意合约0xe230存储的时候,第二次是在DAI存储的时候。也就是说,如果第二次存储的时候存入了25KDAI,那么由于重入攻击,总的铸造的pooltokens将会是双倍,也就是50KDAI。

以此类推,黑客总共发起17次重入攻击并获得了总共2,030,841.0177个DAI资产。

值得注意的是,在攻击的最开始,攻击者还使用了dYdX的闪贷功能。

核心漏洞详解

接下来,我们分析下存在漏洞的代币存储逻辑。Akropolis的用户可以将代币存储入DelphiSavingsPools,而资金池会铸造相应的pooltokens给用户。核心逻辑在SavingsModule::deposit(1,944行)。

第一步:攻击者调用deposit函数并提供_tokens参数。这个函数在进一步调用depositToProtocol(_protocol,_tokens,_dnAmounts)前后会计算代币的余额,并通过代币余额的变化来决定将要铸造的poolTokens数目(第1,970行)。而depositToProtocol函数会调用目标代币的safeTransferFrom函数来进行代币的转账(第2,004行)。然而deposit函数没有对重入攻击进行检测,也没有检查存入的代币是否为恶意代币;

第二步:在恶意代币的transferFrom函数被调用的时候,触发钩子函数,从而再次调用deposit函数;

第三步:因为第二次调用deposit函数的时候攻击者存入了真正的DAI代币使得池子的代币余额发生变化,所以攻击者可以获得资金池铸造的poolTokens;

第四步:当第二次deposit函数调用结束的时候,代码执行流程将返回第一次存储代币调用depositToProtocol函数的上下文。这个时候,代币余额变化将被再次计算。此时代币余额的变化和第二次调用deposit函数代币余额变化一样。因此攻击者可以再次获得相应数目的poolTokens。

被盗资产情况

这次攻击的被盗资产目前被存储在钱包0x9f26中。PeckShield旗下数字资产追踪平台CoinHolmes正在对该地址做全方位监控,并对其资金流向做进一步的锁定分析和追踪,以便协助项目方挽回被盗资产。

本文来自用户投稿,不代表币大大立场,如若转载,请注明出处:https://czxurui.com/zx/71898.html

上一篇 2023年08月25日
下一篇 2023年08月25日

相关推荐

  • 以太坊2层网络最火代币TOP5,谁在引领扩容革命?

    以太坊2层网络最火代币TOP5,谁在引领扩容革命? 以太坊作为智能合约平台的“王者”,其可扩展性问题一直是制约发展的关键瓶颈,随着Layer2(L2)解决方案的崛起,以太坊主网(Layer1)的拥堵和高Gas费问题得到显著缓解,而L2生态中的代币也随之成为市场焦点,这些代币不仅承

    2026-11-09 10:10:01
    6 0
  • 币安Web3杠杆代币的持有成本,机制、风险与理性认知

    币安Web3杠杆代币的持有成本,机制、风险与理性认知 在Web3浪潮下,杠杆代币因其“以小博大”的特性成为投资者追逐的热点,币安(Binance)平台上线的Web3杠杆代币更是凭借高流动性吸引了不少用户,这类产品的“高收益”光环背后,隐藏着不容忽视的持有成本,若投资者忽视其底

    2026-11-07 22:10:01
    11 0
  • 以太坊代币上传图标(Icon)费用全解析,2024年最新成本与省钱指南

    以太坊代币上传图标(Icon)费用全解析,2024年最新成本与省钱指南 在去中心化金融(DeFi)和非同质化代币(NFT)蓬勃发展的今天,创建一个具有吸引力的以太坊代币项目是许多开发者和创业者的第一步,而一个精美的代币图标(Icon),往往是项目给用户留下第一印象的关键,一个

    2026-11-06 06:10:01
    13 0
  • 以太坊钱包如何查看和管理其他代币?一份超详细指南

    以太坊钱包如何查看和管理其他代币?一份超详细指南 以太坊(Ethereum)不仅仅是一个加密货币,它更是一个强大的去中心化应用平台,以太坊钱包(如MetaMask、Trust Wallet等)除了存储ETH(以太坊的原生代币)外,更重要的是能够与运行在以太坊区块链上的各种去中心化应用(D

    2026-11-04 04:10:01
    19 0
  • 以太坊代币转账要多久到账?影响因素与加速指南全解析

    以太坊代币转账要多久到账?影响因素与加速指南全解析 在加密货币的世界里,以太坊(Ethereum)作为智能合约和去中心化应用(DApps)的首选平台,其上的代币转账(如USDT、USDC、SHIB、LINK等)是用户最常见的操作之一,许多新手乃至一些老用户都会问同一个问题:“我的以太坊

    2026-11-02 04:10:02
    24 0
  • 以太坊官方钱包App安卓版下载指南,安全存储ETH与ERC20代币的必备选择

    以太坊官方钱包App安卓版下载指南,安全存储ETH与ERC20代币的必备选择 在加密货币领域,以太坊(Ethereum)作为全球第二大区块链平台,其生态中的ETH原生代币及各类ERC20代币(如USDT、DAI、UNI等)的存储需求日益增长,对于安卓用户而言,选择一款官方、安全、易用的钱包至关

    2026-10-31 00:10:02
    29 0

发表回复

8206

评论列表(0条)

    暂无评论

binance币安交易所
已有2000万用户加入币安交易所

立即下载