![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
区块链安全
文章平均质量分 64
信安成长日记
热爱网络安全,热爱OS原理 && PWN
展开
-
solidity 重入漏洞
恶意合约 B 调用了合约 A 中的 public funcA 函数,在函数 funcA 的代码中,又调用了别的合约的函数 funcB,并且该合约地址可控。当恶意合约 B 实现了 funcB,并且 funcB 的代码中又调用了合约 A 的 funcA,就会导致一个循环调用,即 step 2 => step 3 => step 2 => step 3 => ....... 直到 合约 gas 耗尽或其他强制结束事件发生。恶意合约 B 调用了合约 A 的退款函数;原创 2023-12-20 15:14:57 · 1856 阅读 · 1 评论 -
Slither 安装和使用
使用 solc-select 安装 solc,装不了的话挂下代理。安装 solc-select。测试环境 centos7。slither 扫描目录。安装 slither。原创 2023-12-17 14:16:09 · 633 阅读 · 0 评论 -
solidity 特性导致的漏洞
由于合约设置参与者每次提交的 Ether 数为 0.5,提交多次后就会达到10 Ether,因此攻击者就可以创建带有 selfdestruct() 函数的合约,通过 selfdestruct() 函数强制给它提供 0.1 Ether,当强制转入的 0.1 Ether 进入条件判断,最终的计算数值将永远不会成为整数,this.balance==finalMileStone 判断将永远不会成立,导致参与者永远不会获得奖励。浮点型,定长浮点型——Solidity目前暂时不支持浮点型,也不完全支持定长浮点型。原创 2023-12-14 16:31:21 · 1485 阅读 · 1 评论 -
solidity 整数溢出漏洞
Solidity语言中,变量支持的整数类型步长以 8 递增,支持从 uint8 到 uint256,以及 int8 到 int256。使用 OpenZeppelin 维护的一套智能合约函数库中的SafeMath方法来处理算术逻辑。乘法、加法、减法算术运算时,运算数值可控。原创 2023-12-14 15:53:15 · 513 阅读 · 0 评论 -
solidity 不安全的随机数
漏洞发生场景:使用区块和交易属性作为随机数种子。原创 2023-12-14 15:48:53 · 448 阅读 · 0 评论 -
短地址漏洞
32字节,存放以太坊地址,目前以太坊地址是20个字节(40个十六进制字符),高位补0x0,满足32字节,比如0000000000000000000000001234567890123456789012345678901234567800。32字节,是需要传输的代币数量,不足32字节,高位补0x0,满足32字节,比如00000000000000000000000000000000000000000000000000000adba0ce5362。4字节,是方法名的Hash值:a9059cbb。原创 2023-12-14 15:12:36 · 642 阅读 · 0 评论 -
Solidity 代码执行漏洞原理
当合约 A 和 合约 C 都有状态变量,delegatecall 调用的函数如果修改了合约 C 第一状态变量的值,那么实际修改的是合约 A 中第一个状态变量的值,也就是合约 A 的 slot 0 中的状态变量 owner。使用 call 调用别的合约的函数时,执行环境是被调用的合约执行环境,改变的也是被调用合约的状态变量。EVM 的一个特性:EVM 在获取参数的时候没有参数个数校验的过程,从前往后取值,取够参数个数后就把后面的多余参数截断了,在编译和运行阶段都不会报错。delegatecall 的变化。原创 2023-12-14 15:01:33 · 1467 阅读 · 0 评论