首页
社区
课程
招聘
[原创]智能合约-访问控制缺陷 笔记
发表于: 2020-5-5 09:19 25477

[原创]智能合约-访问控制缺陷 笔记

2020-5-5 09:19
25477

在商城换的那本《智能合约安全分析和审计指南》的笔记

访问控制缺陷是因为编写 solidity 智能合约的时候,对于某些判断的定义不严谨或者笔误,导致的某些敏感功能的访问验证被绕过问题。攻击者可以恶意使用某些敏感功能


先看一段代码片段


在代码中的 transfer 函数,除了转账功能还增加了两个修饰符 isTokenTransfer 和 checkLock,我们主要讨论 isTokenTransfer 函数


当 tokenTransfer 变量为 false 时,被 isTokenTransfer 修饰的函数是无法正常执行的,在 disableTokenTransfer 函数可以把这个变量改成 false,disableTokenTransfer 有一个修饰符是 onlyFromWallet 字面意思上看应该是只能合约本身去调用的


onlyFromWallet 函数定义在这里


加这个本意是只能合约本身去调用的,但是这里 != 的条件判断下来的话就是 如果调用者不是合约本身反而是通过的了


077K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6U0L8W2)9J5k6h3g2@1K9r3g2J5M7$3y4S2L8W2)9J5k6h3y4G2L8g2)9J5c8X3q4V1k6s2u0W2M7%4y4Q4x3V1j5H3P5r3t1#2j5e0g2X3x3U0t1$3z5e0b7K6y4e0u0U0x3e0g2T1x3o6l9K6x3U0x3^5y4o6c8S2k6o6f1@1y4h3q4T1j5U0u0T1x3e0p5H3x3U0S2Q4x3U0y4U0L8$3c8W2

去这里复制一下代码


用默认账户选择 IceToken 合约,在 wallet 中填上默认账户的地址,在 initial_balance 中填上 100,然后部署


image.png



[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-5-5 09:21 被yichen115编辑 ,原因: 代码块
收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 23
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2020-5-6 06:12
0
游客
登录 | 注册 方可回帖
返回