FIX-WITH-AVII/audit-notes
GitHub: FIX-WITH-AVII/audit-notes
一个以专业审计竞赛格式编写的小型智能合约安全审查实践笔记库,用于积累和分享漏洞发现与修复经验。
Stars: 0 | Forks: 0
# 审计笔记
小型智能合约的安全审查实践,采用专业审计比赛(如 Code4rena、Sherlock 和 Cantina)所使用的格式编写。
## 发现格式
每项发现的编写格式如下:
### [严重程度] 标题
- **严重程度:** High / Medium / Low / Informational
- **目标:** 文件和函数
- **描述:** 问题是什么
- **影响:** 攻击者能实现什么
- **概念验证:** 触发该问题的步骤或代码
- **建议:** 具体的修复方案
## 严重程度指南
| 严重程度 | 含义 |
| --- | --- |
| High | 直接的资金损失或合约完全被攻破 |
| Medium | 有条件的损失,或需要特定状态才能造成的破坏 |
| Low | 影响有限,难以利用 |
| Informational | 最佳实践、Gas 或代码质量 |
## 发现示例
### [High] withdraw 中的重入漏洞耗尽了金库
- **严重程度:** High
- **目标:** VulnerableVault.withdraw()
- **描述:** 对调用者的外部调用在余额清零之前执行。
- **影响:** 恶意合约重入 withdraw() 并反复提款,耗尽所有存款。
- **概念验证:** 攻击者存款后,调用 withdraw(),然后在余额清除之前从其 receive() 函数重入。
- **建议:** 应用检查-生效-交互模式并添加重入锁。请查看 vulnerable-then-fixed 仓库中已修复的合约。
## 审查报告
完成的审查将持续添加。
标签:区块链, 学习资源, 智能合约, 漏洞分析, 路径探测, 防御加固