vyszraelhanna/smart-contract-audit-ethernaut

GitHub: vyszraelhanna/smart-contract-audit-ethernaut

使用 Foundry 框架解答 Ethernaut 关卡并记录漏洞分析与修复建议的智能合约安全学习项目。

Stars: 0 | Forks: 0

# Ethernaut 漏洞利用与安全报告 使用 Foundry PoC 解答 Ethernaut 关卡 (OpenZeppelin) 的个人项目。重点关注理解漏洞、在本地/分叉环境中复现利用以及记录风险与建议的缓解措施。 ## 已解决关卡 - [Fallback](docs/fallback/README.md) -> 通过宽松的 receive() 接管所有权; - [Fallout](docs/fallout/README.md) -> 假构造函数 ('Fal1out') 允许任何人成为 owner。 - [Coin Flip](docs/coinFlip/README.md) -> 合约依赖 blockhash 生成伪随机数。 - [Telephone](docs/telephone/README.md) -> 合约仅依赖 `tx.origin != msg.sender` 检查进行访问验证。 ## 通用漏洞与风险报告 以下是已解决关卡中发现的主要漏洞摘要: | 关卡 | 主要漏洞 | 严重程度 | 主要影响 | 建议缓解措施 | ----- | ----- | ----- | ----- | ----------------- | |Fallback | 宽松的 receive() | High | 花费 1 wei 接管所有权并完全耗尽资金 | 移除或保护 receive()。 | |Fallout | "Fal1out" 函数 ( 拼写错误 ) | High | 任何人都可以成为 owner 并耗尽资金 | 使用 `constructor()` 代替普通函数。 |Coin Flip | 使用 Blockhash 生成伪随机数 | High | `blockhash` 是区块链上**任何人**都可以访问的公共值,使得结果完全可预测。 | 始终依赖链下 Oracle 或链上 VRF 解决方案来生成不可预测且防篡改的随机数。 |Telephone| 通过中间合约调用接管所有权。 | Hight | 合约有一个名为 `changeOwner()` 的函数,只要调用来自中间合约,就允许将所有权转移给任何人 | 切勿依赖 `tx.origin` 进行访问控制,因为任何中间合约都可以绕过它。 有关完整详情(PoC、利用步骤、链上信息),请点击上方链接。 ## 如何运行测试 ``` # 示例用于 fallback level (根据需要调整路径) forge test --match-path "test/fallback/*" -vvvv ``` ## 工具与环境 - Foundry - Sepolia 测试网 欢迎贡献、建议或提问!
标签:CISA项目, DeFi安全, Ethernaut, Foundry, OpenZeppelin, PoC, Solidity, tx.origin漏洞, Web3安全, Writeup, 以太坊, 区块链安全, 协议分析, 提示词注入, 智能合约安全, 暴力破解, 权限提升, 漏洞分析, 漏洞复现, 路径探测, 防御缓解措施, 随机数预测