DeFi 协议 Akropolis 重入攻击简析

2020-11-15 14:43 栏目:经验之谈 来源:网络整理 查看()

11月13日,据CoinDesk消息,Akropolis协议遭到黑客攻击,损失约200万DAI。慢雾安全团队当天第一时间介入分析,将结论同步给相关利益方。以下是慢雾安全小组对此事件的简要分析,供大家参考。

背景概述

Akropolis是一个在Ethereum上运行的贷款和存款协议。用户可以使用Akropolis借款或在Akropolis存款收取贷款利息。

攻击过程分析

1.攻击者使用自己创建的令牌进行存款。此时,Akropolis合同将首先记录合同中所有代币的总金额;

2.当Akropolis合同调用用户创建的令牌的transferFrom函数时,攻击者在transferFrom函数中重新输入Akropolis合同的存款函数,并将其传递给DAI to Akropolis合同;

3.此时,在重入交易中,由于Akropolis合同将首先获得合同中所有代币的总额,因此该值与第一次调用存款函数获得的合同代币总额一致;

4.Akropolis合同计算充值前后合同中代币总额的差额。充值DAI后,攻击者会获得一定数量的Delphi令牌,获得的令牌数即为充值DAI数;

5.铸币完成后,该过程返回到第一次存款并继续执行。此时,合同将再次获得合同中所有代币的总金额。此时由于攻击者在重新进入交易时已经转移了一定数量的DAI,所以得到的令牌总余额就是攻击者重新进入交易后的令牌总余额;

6.这时候合同再算差额。由于合同中所有代币的总额在第一次存款时已经保存,计算出的差额与再进入交易中计算出的差额一致,Akropolis合同再次向攻击者铸造硬币。

摘要

攻击者使用自己的令牌重新进入Akropolis合同的存款功能,导致Akropolis合同两次使用相同的差额铸币,但只触发了一次转账。当攻击者兑现现金时,他可以将利润翻倍并获利。

相关链接:

CoinDesk关于Akropolis合同被攻击的报道:

https://www . coin desk.com/defi-project-akropolis-token-pool-drained

(2)分析样品:

https://ethercan . io/tx/0x3db 8d 4618 a a3 b 97 eeb 3a f 01 f 01692897d 14 F2 da 090d 5d 6407 f 550 a1 b 10 c 15133

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发