科普 | 智能合约安全审计入门篇 —— 自毁函数_ETH:HyperGPT

By:小白@慢雾安全团队

背景概述

上次我们了解了什么是溢出漏洞和如何预防和发现它。这次我们要了解的是solidity中自带的函数——?selfdestruct自毁函数。

前置知识

我们先来了解solidity中能够转账的操作都有哪些:

动态 | 链客社区联合北京交通广播推出区块链技术科普节目:12月11日15:15—16:00,区块链技术社区——链客区块链技术社区将联合北京交通广播FM103.9从零开始为大众科普解码区块链技术,蜻蜓FM及北京广播网同期进行全球直播。首期做客嘉宾为链客区块链技术社区创始人郄建军和百度区块链产品负责人于雅楠。[2019/12/11]

1

现场 | 火币中国推出数字经济及区块链产业科普新书:金色财经现场报道,12月6日,由海南省工业和信息化厅主办,南南合作金融中心协办,海南生态软件园、火币中国承办的“海南自贸港数字经济和区块链国际合作论坛”在海口举行,这是全球首次区块链部长级论坛。

在本次论坛上,火币中国举行了“数字经济及区块链产业科普系列新书发布”仪式,希望通过教材、专业教育、培训等多种方式,帮助从业者、高校、研究机构深入了解区块链,从而建立起区块链全局性知识模型,真正推动区块链应用落地。火币中国CEO袁煜明介绍,将联合机械工业出版社面向普通高等教育推出《区块链导论》、《区块链系统设计与应用》和《区块链新商业模式分析》系列教材,这是国内最早推动的区块链教材之一;火币中国还积极参与数字经济的研究,由中信出版社出版的新书《读懂Libra》已经上市;由火币中国负责编写的区块链技术科普读物《区块链技术进阶指南》将于12月面世;首本行业内最全的区块链应用案例集《区块链产业应用100例》在本次论坛进行了首次刊印。[2019/12/6]

}functionclaimReward()public{require(msg

声音 | ETC Labs主管:科普教育是未来几年公链面临的巨大挑战:ETCLabs主管Darin Kotalik认为,科普教育是未来几年公链面临的巨大挑战,人们必须要对区块链有基本的认识,分清楚公链和私链的区别。[2019/8/25]

}漏洞分析

EtherGame合约实现的功能是一个游戏,我们这里可以称它为“幸运七”。玩家每次向EtherGame合约中打入一个以太,第七个成功打入以太的玩家将成为winner。winner可以提取合约中的7个以太。

玩家每次玩游戏时都会调用EtherGame

functionattack()publicpayable{addresspayableaddr=payable(address(etherGame));selfdestruct(addr);}这里我们还是引用三个角色来讲解攻击合约的攻击过程

玩家一:Alice

玩家二:Bob

攻击者:Eve

1.开发者部署EtherGame合约;

2.玩家Alice决定玩游戏,她这辈子玩游戏从来没赢过,她觉得这个游戏可以让她体验一次当winner的快感,所以她决定连续调用EtherGame

}functionclaimReward()public{require(msg

}作为审计者

作为审计者我们需要结合真实的业务逻辑来查看address(this).balance的使用是否会影响合约的正常逻辑,如果会影响那我们就可以初步认为这个合约存在被攻击者强制打入非预期的资金从而影响正常业务逻辑的可能。在审计过程中还需要结合实际的代码逻辑来进行分析。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:15ms0-7:576ms