区块链技术博客
www.b2bchain.cn

慢雾科技:DeFi协议Akropolis重入攻击简析

D0b2wT.gif

第9712篇文章慢雾科技:DeFi协议Akropolis重入攻击简析,说明解释了慢雾科技:DeFi协议Akropolis重入攻击简析,是很好的区块链入门技术文章网站,提供了相应的代码的进行解释,并且把原理说的很清晰

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 合约使用相同的差值铸币了两次,但是只触发了一次转账,当攻击者提现的时候,就可以提两倍的收益,从而获利。

来源:慢雾科技

慢雾科技:DeFi协议Akropolis重入攻击简析 由www.b2bchain.cn 提供
文章整理自网络,只为个人学习与分享使用
链接地址https://www.b2bchain.cn/9712.html

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 慢雾科技:DeFi协议Akropolis重入攻击简析
分享到: 更多 (0)
D0b2wT.gif

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们