专栏名称: 3072
威胁狩猎,漏洞挖掘
今天看啥  ›  专栏  ›  3072

智能合约漏洞入门(4)可重入性漏洞

3072  · 公众号  ·  · 2024-06-06 13:36
    

文章预览

描述: EtherStore可重入性漏洞是智能合约设计中的一个缺陷,它允许攻击者利用可重入性,从EtherStore合约中提取比他们有权获得的更多的资金。这个漏洞产生于EtherStore合约中的withdrawFunds函数,在那里以太币在更新他们的余额之前就被转移到攻击者的地址。这允许攻击者的合约在余额更新之前回叫withdrawFunds函数,导致多次提款,并可能耗尽EtherStore合约中的所有以太币。 场景: EtherStore是一个简单的保险库,它可以管理每个人的以太币。但它是脆弱的,你能偷走所有的以太币吗? 缓解措施: 遵循检查-效果-交互原则,并使用OpenZeppelin可重入性保护。 参考: Introduction to Smart Contract Vulnerabilities: Reentrancy Attack Consensys Smart Contract Best Practices: Reentrancy EtherStore合约: contract EtherStore {     mapping( address  =>  uint256) public balances;      function   deposit ( )  p ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览