重入攻击

微信扫码分享
漏洞利用: 分析存储与重入攻击提取Vault资金

漏洞利用: 分析存储与重入攻击提取Vault资金

视频 AI 总结: 本视频讲解了一个以太坊智能合约安全漏洞的利用方法。目标是从一个名为 Vault 的合约中取出资金,该合约通过委托调用将调用转发到 VaultLogic 合约。攻击者需要先利用存储布局漏洞(密码实际是 VaultLogic 地址)成为 owner,然后开启取款功能,再通过重入攻击在单笔交易中完成存款和多次取款,最终取走合约中的全部资金。整个攻击过程通过一个合约实现原子操作,确保失败时全部回滚。 关键信息: - Vault 合约的资金只能通过 withdraw 函数取出,但该函数默认被 onlyWithdraw 修饰器锁定,需要 owner 调用 openWithdrawal 开启。 - owner 变更函数 changeOwner 要求输入密码,密码是第一个存储插槽的内容,实际运行时该插槽存储的是 VaultLogic 合约地址(因为 delegatecall 在 logic 合约的存储空间中操作)。 - 攻击步骤:先调用 changeOwner 传入 logic 地址作为密码,将 owner 设为攻击者;再调用 openWithdrawal 开启取款;随后攻击者合约存入一定金额;最后调用 withdraw,利用重入(在 fallback 中再次调用 withdraw)将 Vault 中的资金全部取出。 - 整个攻击可封装在同一个合约的一个函数中,实现原子执行,避免部分失败导致资金损失。

12 0 0 2026-06-09 09:01
智能合约安全

智能合约安全

视频 AI 总结: 本视频聚焦区块链智能合约安全,强调合约不可修改且直接管理资金,每年因安全问题导致巨额损失。主讲人通过代码示例和演示,详细分析了重入攻击、拒绝服务、签名重用、精度损失等常见漏洞的原理与防御方案,并给出了开发者提升安全性的实用建议,包括使用重入锁、最小化代码、减少外部依赖、进行审计与测试等。 关键信息: - 合约不可修改,逻辑漏洞一旦部署难以修复,安全问题每年造成数十亿美元损失。 - 常见漏洞:重入攻击(通过递归调用掏空资金)、拒绝服务(线性增长gas消耗导致服务堵塞)、签名重用(签名可重复执行或抢跑)、精度损失(除法截断)、强制转账绕过receive等。 - 防御措施:采用Check-Effects-Interaction模式、使用重入锁(瞬态存储降低成本)、签名添加nonce和指定spender、避免EOA/合约区分判断、确保函数gas消耗O(1)等。 - 开发者应做好灾难恢复预案、避免中心化依赖、使用经过验证的代码、进行多人审计和bug bounty,并利用静态分析、形式化验证及AI工具加强安全。

35 0 0 2026-06-08 11:38
VibeCoding: 合约挑战 - Delegatecall重入清空金库

VibeCoding: 合约挑战 - Delegatecall重入清空金库

视频 AI 总结: 本视频详细讲解了一个智能合约挑战作业的解题思路,核心内容是利用`Delegatecall`漏洞和重入攻击来清空目标合约(Vault)中的所有资金。通过分析合约结构和执行流程,揭示了如何绕过权限控制,最终实现资金盗取,从而满足挑战的`isSolved`条件。 关键信息: 1. **合约架构**:存在一个用户交互合约(Vault)和一个逻辑实现合约,Vault合约通过`Delegatecall`委托调用逻辑合约。 2. **攻击目标**:将Vault合约的余额清零。 3. **`Delegatecall`漏洞利用**:`ChangeOwner`函数在Vault合约上下文中执行时,其密码验证实际上是检查Vault合约的`slot 1`,即逻辑合约的地址。攻击者可将逻辑合约地址作为密码,修改Vault合约的Owner。 4. **攻击步骤**: * 利用逻辑合约地址作为密码,调用`ChangeOwner`将Vault合约的Owner修改为攻击者地址。 * 以攻击者身份调用`Open Withdrawal`,打开取款开关。 * 调用`Withdrawal`函数,并利用重入攻击机制,在一次取款操作中多次执行取款逻辑,清空合约内所有资金。 5. **涉及技术**:`Delegatecall`机制、Solidity存储槽位(slot)原理、重入攻击。

46 0 0 2026-04-01 08:20
以太坊智能合约安全:熟悉常见漏洞及攻击手法

以太坊智能合约安全:熟悉常见漏洞及攻击手法

视频主要讲解以太坊中智能合约的常见安全漏洞、攻击手段及防御策略,涉及重入攻击、DoS攻击、签名滥用等典型案例分析。通过代码演示和理论讲解,强调了区块链开发中安全审计与风险防范的重要性。 1、安全话题介绍 智能合约开发中安全性至关重要,每年因安全问题导致数十亿美金损失,例如今年3月因多签钱包前端被攻击损失15亿美金。 Web3中资金被盗或私钥丢失后难以回滚或找回,因此需特别注意安全性。 2、钓鱼攻击案例 分享了一个钓鱼攻击案例,攻击者伪装成知名项目团队,通过高仿网站和软件包试图骗取私钥或签名。 提醒用户提高警惕,避免点击不明链接或安装不明软件,尤其是高仿钱包或网站。 3、常见安全漏洞 列举了常见的安全漏洞类型,包括权限管理不当、DoS攻击、价格操纵、随机数问题、虫洞攻击等。 重点讲解了重入攻击的原理和防范方法,包括先检查再修改最后交互和使用锁机制。 演示了重入攻击的场景和解决方案,通过修改存款金额或使用锁机制防止多次调用。 4、DoS攻击和签名重用 讲解了DoS攻击的原理,即通过线性增长的gas消耗使合约无法正常运行。 介绍了签名重用的风险,即签名可能被抢跑或多次使用,解决方案是在签名中包含接收者信息并限制使用次数。 5、精度损失和溢出问题 指出了整数运算中的精度损失问题,建议放大数据以减少精度损失。 讲解了溢出问题,特别是在无符号整数减法中可能出现的下溢问题。 6、合约账户与EOA账户 讨论了合约账户与EOA账户的区别,指出在构造函数中调用时可能绕过EOA检查的问题。 建议避免依赖EOA账户的判断,因为未来可能所有账户都是合约账户。 7、安全实践和挑战 推荐了一些安全挑战网站和最佳实践,帮助开发者加深对EVM和安全的理解。

117 0 0 2025-08-30 11:08