智能合约安全审计入门系列。
使用检查、影响和交互模式(简称CEI:Checks, Effects, and Interactions)、互斥锁、Pull 支付方式以及gas限制都是防止可重入攻击的有效技术。
重入,顾名思义是指重复进入,也就是“递归”的含义,本质是循环调用缺陷。重入漏洞(或者叫做重入攻击),是产生的根源是由于solidity智能合约的特性,这就导致许多不熟悉solidity语言的混迹于安全圈多年的安全人员看到“重入漏洞”这4个字时也都会一脸蒙圈,重入漏洞本质是一种循环调用,类似于其他语言中的死循环调用代码缺陷。
“递归”
循环调用缺陷
solidity智能合约
区块链领域的安全问题不容忽视,这就要求开发者必须时刻小心谨慎,养成防御性编程思维
典型的重入漏洞,分析重入漏洞两板斧:1. 找循环 ,2. 找代币变化。
重入攻击,是由于开发者写的 Solidity 代码的一些漏洞造成的。在这篇文章会介绍以太坊最出名的一次的黑客攻击。这次事件中,黑客攻击了一个叫做 TheDAO 的 DAO(去中心化自制组织)。
DeFi 项目 Lendf.me 遭遇重入攻击,黑客以滚雪球的方式将 Lendf.Me 账户资产洗劫一空,导致损失近2500万美元,获利资产已经进行兑换和转移。
第一课【权限漏洞及重入攻击】。
7月10日,NFT金融协议Omni因智能合约漏洞遭到黑客闪电贷攻击,耗尽了1300ETH,损失约143万美元。 近期NFT流动性市场安全问题频发。SharkTeam第一时间对此事件进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。
本文将重点分析和复现xSurge的攻击过程。该漏洞利用的代码是重入漏洞的典型代码,但利用过程却不是重入。应该是”最像重入漏洞的套利漏洞”。价格计算机制既然可以从数学上证明存在漏洞,能不能用数学的方法来挖掘此类的漏洞?
重入漏洞的典型代码
利用过程却不是重入
第一课【详解重入攻击】。
Hundred与Agave被黑事件分析
分享CTF比赛中智能合约常见题型(重入,整数溢出,空投,随机数可控等)及解题思路,相信会给读者带来不一样的收获。
重入攻击是 Solidity 智能合约中最具破坏性的攻击之一。
十大Web3.0安全最佳实践方式