重入,顾名思义是指重复进入,也就是“递归”的含义,本质是循环调用缺陷。重入漏洞(或者叫做重入攻击),是产生的根源是由于solidity智能合约的特性,这就导致许多不熟悉solidity语言的混迹于安全圈多年的安全人员看到“重入漏洞”这4个字时也都会一脸蒙圈,重入漏洞本质是一种循环调用,类似于其他语言中的死循环调用代码缺陷。
“递归”
循环调用缺陷
solidity智能合约
区块链领域的安全问题不容忽视,这就要求开发者必须时刻小心谨慎,养成防御性编程思维
典型的重入漏洞,分析重入漏洞两板斧:1. 找循环 ,2. 找代币变化。
重入攻击,是由于开发者写的 Solidity 代码的一些漏洞造成的。在这篇文章会介绍以太坊最出名的一次的黑客攻击。这次事件中,黑客攻击了一个叫做 TheDAO 的 DAO(去中心化自制组织)。
DeFi 项目 Lendf.me 遭遇重入攻击,黑客以滚雪球的方式将 Lendf.Me 账户资产洗劫一空,导致损失近2500万美元,获利资产已经进行兑换和转移。
第一课【权限漏洞及重入攻击】。
7月10日,NFT金融协议Omni因智能合约漏洞遭到黑客闪电贷攻击,耗尽了1300ETH,损失约143万美元。 近期NFT流动性市场安全问题频发。SharkTeam第一时间对此事件进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。
本文将重点分析和复现xSurge的攻击过程。该漏洞利用的代码是重入漏洞的典型代码,但利用过程却不是重入。应该是”最像重入漏洞的套利漏洞”。价格计算机制既然可以从数学上证明存在漏洞,能不能用数学的方法来挖掘此类的漏洞?
重入漏洞的典型代码
利用过程却不是重入
本文详细探讨了跨链安全中的一种重入攻击向量,指出在构建跨链NFT合约时可能面临的安全风险。通过对危险外部调用的分析,作者提出了如何可能利用这一漏洞进行攻击的策略,并提供了针对性的解决方案。
第一课【详解重入攻击】。
本文总结了Solidity智能合约开发中常见的五个陷阱,包括存储、内存和calldata的区别,重入攻击,默认public的可见性,使用tx.origin进行授权的风险,以及无限循环/高Gas成本问题。针对每个问题,文章都给出了具体的代码示例和修复方案,旨在帮助开发者构建更安全、更智能的智能合约。
本文详细介绍了在Solidity智能合约中常见的安全漏洞,包括重入攻击、计算错误、预言机失败/操控、弱访问控制和前置运行攻击。同时提供了一些解决方案和预防措施,帮助开发者提升智能合约的安全性。
Hundred与Agave被黑事件分析
本文总结了智能合约开发中常见的安全漏洞和最佳实践,包括重入攻击、算术精度问题、访问控制不当、非标准协议、原生代币处理、底层调用、随机数问题、存储槽管理以及编译器版本固定。同时,强调使用静态分析工具和编写全面测试的重要性。
分享CTF比赛中智能合约常见题型(重入,整数溢出,空投,随机数可控等)及解题思路,相信会给读者带来不一样的收获。