-
-
[原创]智能合约-访问控制缺陷 笔记
-
发表于:
2020-5-5 09:19
25419
-
在商城换的那本《智能合约安全分析和审计指南》的笔记
访问控制缺陷是因为编写 solidity 智能合约的时候,对于某些判断的定义不严谨或者笔误,导致的某些敏感功能的访问验证被绕过问题。攻击者可以恶意使用某些敏感功能
先看一段代码片段
在代码中的 transfer 函数,除了转账功能还增加了两个修饰符 isTokenTransfer 和 checkLock,我们主要讨论 isTokenTransfer 函数
当 tokenTransfer 变量为 false 时,被 isTokenTransfer 修饰的函数是无法正常执行的,在 disableTokenTransfer 函数可以把这个变量改成 false,disableTokenTransfer 有一个修饰符是 onlyFromWallet 字面意思上看应该是只能合约本身去调用的
onlyFromWallet 函数定义在这里
加这个本意是只能合约本身去调用的,但是这里 != 的条件判断下来的话就是 如果调用者不是合约本身反而是通过的了
https://cn.etherscan.com/address/0xb5a5f22694352c15b00323844ad545abb2b11028#code
去这里复制一下代码
用默认账户选择 IceToken 合约,在 wallet 中填上默认账户的地址,在 initial_balance 中填上 100,然后部署
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2020-5-5 09:21
被yichen115编辑
,原因: 代码块