无中生有?DeFi协议Akropolis重入攻击简析
By : yudan@慢雾安全团队
11 月 13 日, 据 CoinDesk 消息,Akropolis 协议遭受黑客攻击,损失约 200 万 DAI,慢雾安全团队已于当天第一时间介入分析,并将结论同步给了相关关心方。以下为慢雾安全团队对此事件的简要分析,供大家参考。
背景提要
Akropolis 是运行在以太坊上的借贷和存款协议,用户可以使用 Akropolis 进行借贷或在 Akropolis 存款收取借贷利息。
攻击流程简析
1. 攻击者使用自己创建的 token 进行 deposit,此时 Akropolis 合约会先记录一次合约中所有代币的总量;
2. Akropolis 合约调用用户自己创建的 token 的 transferFrom 函数的时候,攻击者在 transferFrom 函数中重入 Akropolis 合约的 deposit 函数,并转入 DAI 到 Akropolis 合约中;
3. 此时在重入的交易中,由于 Akropolis 合约会先获取合约中所有代币的总量,这个值和第一次调用 deposit 函数获取的合约代币总量的值一致;
4. Akropolis 合约计算充值前后合约中代币总量的差值,攻击者在充值 DAI 后,会得到一定量的 Delphi token,获得 token 的数量就是充值 DAI 的数量;
5. 铸币完成后,流程回到第一次 deposit 往下继续执行,这时合约会再次获取合约中所有代币的总量,这时由于在重入交易时,攻击者已经转入一定量的 DAI,所以得到的代币总余额就是攻击者在重入交易完成后的代币总余额;
6. 此时合约再次计算差值,由于第一次 deposit 的时候合约中所有代币的总量已经保存,此时计算出来的差值和重入交易中计算的差值一致,Akropolis 合约再次铸币给攻击者。
总结
攻击者使用自己构造的 token,对 Akropolis 合约的deposit函数进行重入,导致 Akropolis 合约使用相同的差值铸币了两次,但是只触发了一次转账,当攻击者提现的时候,就可以提两倍的收益,从而获利。
相关链接:
(1) CoinDesk 关于 Akropolis 合约被攻击的报道:
https://www.coindesk.com/defi-project-akropolis-token-pool-drained
(2) 分析样本:
https://etherscan.io/tx/0x3db8d4618aa3b97eeb3af01f01692897d14f2da090d5d6407f550a1b10c15133
币安首次试水盘前交易“涨停板机制”,RED开盘前三天最多涨400%,适用性有待市场检验 https://www.panewslab.com/zh/articledetails/r35279j7.html
作者:Weilin,PANews2月25日,币安宣布将在Launchpool盘前交易中上线“涨停板机制”测试,此次测试针对RedStone(RED)代币。RedStone (RED) 是币安Lau...
遭Pump.fun“背刺”,Solana官方力推Time.fun探索生态增长新方向 https://www.panewslab.com/zh/articledetails/3g1pvfp4.html
作者:Nancy,PANews2月24日,时间代币化平台Time.fun正式登陆Solana后,Solana官方团队迅速给予大力支持,甚至Solana联创Toly高频在推文提及,给足市场曝光度。这一...
从宏观环境到垂直赛道,2024下半年加密市场全方位回顾 https://www.panewslab.com/zh/articledetails/ft563q1w.html
1.市场概览I.1 加密货币市场基本面 自2024年上半年以来,加密货币市场经历了显著增长,其总市值从2.31万亿美元飙升至3.33万亿美元,涨幅达到44.2%。这一增长得益于多个关键里程碑的支撑...