慢雾分析kropolis重入攻击事件:1.攻击者使用自己创建的token进行deposit,Akropolis合约会先记录一次合约中代币总量;2.Akropolis合约调用用户创建token的transferFrom函数时,攻击者在transferFrom函数中重入合约的deposit函数,并转入DAI到Akropolis合约;3.在重入交易中,由于Akropolis合约会先获取合约中所有代币总量,该值和第一次调用deposit函数获取的合约代币总量的值一致;4.Akropolis合约计算充值前后合约中代币总量的差值,攻击者在充值DAI后,会得到一定量Delphitoken,获得token的数量就是充值DAI数量;5.铸币完成后,流程回到第一次deposit往下继续执行,合约会再次获取合约中所有代币总量,由于在重入交易时,攻击者已转入一定量DAI,所以得到的代币总余额就是攻击者在重入交易完成后代币总余额;6.合约再次计算差值,由于第一次deposit时合约中所有代币总量已保存,计算出来的差值和重入交易中计算的差值一致,Akropolis合约再次铸币给攻击者。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。