




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
自毁函数漏洞04自毁函数是由以太坊虚拟机EVM提供的一项功能,用于销毁区块链上部署的智能合约。当合约执行自毁操作时,合约账户上剩余的ETH会发送给指定的目标地址,然后其存储和代码从以太坊状态中被移除。自毁函数在solidity中定义为selfdestruct。也就是说,智能合约在某些特殊情况下可以自行毁灭,比如:存在致命bug、废弃不再使用等。需要注意的是,一旦调用了selfdestruct函数,合约的代码将被销毁,合约账户中的所有余额将被发送到指定的地址上,并且以后无法再调用合约的其他函数。在实际开发中,selfdestruct函数通常用于销毁合约并将资金返回给某个预定的合约拥有者或其他指定地址,方便进行清算或转移。自毁合约漏洞-原理自毁合约漏洞-漏洞智能合约介绍自毁合约漏洞-remix模拟正常游戏1.使用账号1部署EtherGame合约,并传入1个以太用来模拟第一个游戏者(模拟第一个游戏者玩游戏投入)2.查看合约账户余额getBalanace或者balances(1个以太),查看TargetAmount(7个以太),查看传入合约的以太(1个以太),查看winner:无3.查看账号1余额(98.99999....eth)==>传入了1个以太和gas费4.点击deposit开始游戏5.点击claimReward,查看是否获奖。=>未获奖6.再次查看合约账户余额getBalanace或者balances(1个以太),查看TargetAmount(7个以太),查看传入合约的以太(1个以太),查看winner:无=>没有改变结果:大概率游戏失败自毁合约漏洞-remix模拟游戏成功1.使用账号1部署EtherGame合约,并传入7个以太用来模拟第一个游戏者(模拟第7个游戏者玩游戏投入)2.查看合约账户余额getBalanace或者balances(7个以太),查看TargetAmount(7个以太),查看传入合约的以太(7个以太),查看winner:无3.查看账号1余额(98.99999....eth)==>传入了7个以太和gas费4.点击deposit开始游戏5.点击claimReward,查看是否获奖。=>获奖6.再次查看合约账户余额getBalanace或者balances(0个以太),查看TargetAmount(7个以太),查看传入合约的以太(7个以太),查看winner:账号1地址自毁合约漏洞-remix尝试攻击漏洞合约自毁合约漏洞-remix尝试攻击漏洞合约1.模拟游戏失败的的基础上进行攻击2.使用账号2部署攻击合约attack,传入7个以太。3.获取攻击合约余额7个以太。4.进行攻击attack,传入步骤1的合约5.再次查看攻击合约余额为0个以太。(通过自毁合约传递)6.查看步骤1中余额getBalance,变为8个以太。=>智能合约余额超乎7,游戏逻辑失败。自毁合约漏洞-漏洞修复不使用address(this).balance作为余额,另外命名有一个balance的变量用于记录合约的用户存款金额,这一样判断的就是这个变量balance,和合约地址剩余余额就没关系
1.在新建文件夹中创建空白truffle文件2.Contract文件夹下创建漏洞合约:demo1_repair.sol3.trufflecompile编译智能合约4.Migration文件夹下创建1_deploy_RandomGame文件:5.trufflemigrate部署智能合约
constRandomGame=artifacts.require("RandomGame");constAttackRandom=artifacts.require("AttackRandom");module.exports=asyncfunction(deployer,accounts){awaitdeployer.deploy(RandomGame);a=awaitRandomGame.deployed();awaitdeployer.deploy(AttackRandom,a.address);}整数溢出-truffle测试漏洞代码6.在test文件夹下创建testDemo1.test.js文件
自毁合约漏洞-Truffle测试漏洞1.在新建文件夹中创建空白truffle文件2.Contract文件夹下修复漏洞合约:badrandom_repair.sol3.trufflecompile编译智能合约4.Migration文件夹下创建1_deploy_RandomGame文件:5.trufflemigrate部署智能合约
constRandomGame=artifacts.require("RandomGame");constAttackRandom=artifacts.require("AttackRandom");module.exports=asyncfunction(deployer,accounts){awaitdeployer.deploy(RandomGame);a=awaitRandomGame.d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络游戏虚拟道具版权许可使用与品牌合作开发补充合同
- 文化创意产业园区股权合作与产业园区电子商务合同
- 知识产权收益分割与产业协同发展合作协议
- 影视作品版权补充授权合同
- 汽车内饰声学优化设计与制造合同
- 收装修押金协议书
- 直播带货佣金比例及分成约定合同
- 律师带过户协议书
- 幼儿园安保协议书
- 矿区石油钻井作业安全监督合同
- 【MOOC】大学生健康教育与自卫防身-山东大学 中国大学慕课MOOC答案
- 北京工业大学耿丹学院《国际金融》2021-2022学年第一学期期末试卷
- 草原病虫害防治技术研究
- 《电力市场概论》 课件 张利 第6、7章 电力市场与输电网络、发电投资分析
- 大学生专业技能培训课程
- 2024年重庆市中考化学试题(A卷)含答案
- 会计师事务所考勤和日常工作管理制度
- 置景合同模板
- 2024年山东省青岛市中考语文试卷(附答案)
- 医院培训课件:《肛肠科无痛病房建设》
- 食品公司品控部工作管理手册
评论
0/150
提交评论