Dao漏洞学习
作者:互联网
Transaction 信息:https://etherscan.io/tx/0x0ec3f2488a93839524add10ea229e773f6bc891b4eb4794c3337d4495263790b
参考文章:
【1】https://learnblockchain.cn/article/644
【2】https://cloud.tencent.com/developer/article/1084243?from=15425
攻击执行流程:
1.建议拆分, 等到投票期(voting period)结束。(DAO.sol, newProposal)
2.执行拆分。(DAO.sol, splitDAO)
3.让DAO将新的DAO发送给它的代币。(splitDAO - > TokenCreation.sol, createTokenProxy)
4.确定DAO在更新你的余额之前尝试发送给你奖励, 但需在完成(3)之后。(splitDAO - > withdrawRewardFor - > ManagedAccount.sol, payOut)
5.当DAO执行(4)时, 让它再次运行splitDAO, 其参数与(2)中的相同(payOut - > _recipient.call.value - > _recipient())
6.DAO现在会向您发送更多子代币, 并在更新余额前提现您的奖励。(DAO.sol, splitDAO)
7.回到(5)!
8.调用transfer()发送Dao到下一个合约以便下一次攻击。
9.让DAO更新你的余额。因为它从来不会从(7)回到(5)
标签:splitDAO,DAO,代币,Dao,sol,学习,漏洞,https 来源: https://blog.csdn.net/Timmbe/article/details/123133020