alinasirlou2020/Hack-Solidity

GitHub: alinasirlou2020/Hack-Solidity

一个结构化的 Solidity 智能合约安全学习仓库,系统覆盖 22 类漏洞的原理、利用与修复方案。

Stars: 0 | Forks: 0

# Hack Solidity:智能合约安全与审计学习路线图 欢迎使用 **Hack-Solidity**!🚀 本仓库是一段结构化、实战导向的智能合约安全学习之旅,灵感源自 *Smart Contract Programmer* 生态系统。其初衷是出于**教育目的**,旨在帮助 Web3 开发者和安全研究人员理解漏洞是如何产生的、如何被利用的,以及如何利用现代开发标准来防范这些漏洞。 ## 📌 关于本仓库 * **教育价值:** 为开发者提供一份学习防御性编程模式的实战指南。 * **审计概念证明 (PoC):** 展示了我在识别、利用和修复严重智能合约漏洞方面的技术能力。 * **持续成长:** 这是一个不断更新的仓库。随着我逐步深入探索 22 个关键的智能合约黑客攻击向量,本仓库将每日/每周进行更新。 ## 🗺️ 路线图与漏洞追踪 以下是将系统性添加到本仓库的 22 项漏洞清单。每个模块均包含漏洞合约、攻击向量、安全实现以及静态分析(Slither)报告。 ### 第一阶段:核心漏洞与利用 - [x] **01. 重入** 🚨 *(状态:已完成)* - 通过递归 fallback 调用抽干资金。 - [ ] **02. 算术溢出与下溢** - 利用未检查的数学运算(Solidity 0.8 之前的遗留行为与现代行为的对比)。 - [ ] **03. 强制发送以太币 (`selfdestruct`)** - 通过强制更新原生代币余额来破坏合约逻辑。 - [ ] **04. 访问私有数据** - 读取链上“隐藏”的存储布局。 - [ ] **05. 不安全的 Delegatecall(第 1 部分)** - 通过恶意执行上下文进行状态劫持。 - [ ] **06. 不安全的 Delegatecall(第 2 部分)** - 高级代理与接管所有权技术。 - [ ] **07. 不安全的随机数来源** - 利用可预测的区块变量(`block.timestamp`、`blockhash`)。 - [ ] **08. 拒绝服务** - 通过 gas 耗尽或故意 revert 来阻断合约功能。 - [ ] **09. 利用 `tx.origin` 进行网络钓鱼** - 使用恶意中间人合约欺骗授权用户。 - [ ] **10. 隐藏恶意代码** - 利用外部合约指针欺骗审计人员。 - [ ] **11. 蜜罐** - 分析旨在诱捕攻击者资金的合约。 ### 第二阶段:高级概念与 DeFi 攻击向量 - [ ] **12. 抢跑** - 利用 mempool 进行三明治攻击和交易置换。 - [ ] **13. 区块时间戳篡改** - 矿工如何巧妙调整时间戳以在链上逻辑中获胜。 - [ ] **14. 签名重放** - 在多重签名或申领中重用有效的加密签名。 - [ ] **15. 零代码大小的合约** - 通过 `constructor` 绕过 `extcodesize` 限制。 - [ ] **16. 只读重入** - 利用 DeFi 协议中未更新的 view 函数。 - [ ] **17. Tornado Cash 黑客攻击** - 深入探讨如何在同一个确定性地址部署完全不同的 bytecode。 - [ ] **18. 高级 CREATE2 部署** - `CREATE2` 布局操作如何影响协议安全。 - [ ] **19. 金库通胀攻击** - 通过早期直接转移资产抽干基于份额的 ERC4626 金库。 - [ ] **20. WETH Permit 漏洞利用** - 利用抢跑签名提交劫持授权。 - [ ] **21. 抢跑 ERC20 授权** - 基础 `approve()` 机制中的经典竞态条件。 - [ ] **22. 63/64 Gas 规则攻击** - 通过发送精确的 gas 限制来操纵子调用,从而强制引发针对性的状态失败。 ## 🛠️ 使用工具 * **框架:** Foundry (Forge & Cast) * **静态分析工具:** Slither(附带自定义本地 `.config` 路径过滤) * **编译器版本:** Solidity `^0.8.20` ## 🤝 免责声明 *本仓库严格仅用于网络安全研究、教育记录和专业作品集展示。严禁在任何线上主网部署中使用这些攻击向量。*
标签:Solidity, 区块链安全, 智能合约