点击此处获得更好的阅读体验
WriteUp来源
题目考点
区块链
solidity逆向
整数溢出
tx.origin鉴权绕过
解题思路
这个合约的逻辑很简单,获取flag需要代币余额大于10000并且成为合约所有者。
transferFrom函数存在溢出,用合约创建账户向自己账户转大于10000代币即可;
合约用tx.origin判断合约调用者,构造一个新合约来调用源合约就可以绕过。
exp代码如下:
1 | pragma solidity ^0.4.18; |
点击此处获得更好的阅读体验
区块链
solidity逆向
整数溢出
tx.origin鉴权绕过
这个合约的逻辑很简单,获取flag需要代币余额大于10000并且成为合约所有者。
transferFrom函数存在溢出,用合约创建账户向自己账户转大于10000代币即可;
合约用tx.origin判断合约调用者,构造一个新合约来调用源合约就可以绕过。
exp代码如下:
1 | pragma solidity ^0.4.18; |