SrishtiCode/DamnVulnDefiSolutions
GitHub: SrishtiCode/DamnVulnDefiSolutions
该仓库提供了 Damn Vulnerable DeFi 挑战赛的详细解题方案,涵盖了从闪电贷操纵到治理攻击等多种 DeFi 智能合约漏洞的利用代码与审计思路。
Stars: 0 | Forks: 0
# Damn Vulnerable DeFi
Damn Vulnerable DeFi 是面向开发者、安全研究人员和教育者的智能合约安全演练场。
这可以说是迄今为止最精密的一套 Solidity 智能合约漏洞集合,它包含了闪电贷、价格预言机、治理、NFT、DEX、借贷池、智能合约钱包、时间锁、金库、元交易、代币分发、可升级性以及更多功能。
使用 Damn Vulnerable DeFi 来:
- 磨练你的审计和漏洞挖掘技能。
- 学习如何在现实场景中检测、测试和修复缺陷,从而成为一名具备安全意识的开发者。
- 对智能合约安全工具进行基准测试。
- 通过文章、教程、演讲、课程、研讨会、培训、CTF 等形式,创建关于智能合约安全的教育内容。
## 安装
1. 克隆该仓库。
2. 检出最新版本(例如,`git checkout v4.1.0`)。
3. 将 `.env.sample` 文件重命名为 `.env` 并添加一个有效的 RPC URL。这仅适用于需要分叉主网状态的挑战。
4. 安装 [Foundry](https://book.getfoundry.sh/getting-started/installation),或者使用[提供的 devcontainer](./.devcontainer/)(在 VSCode 中,使用命令 "Devcontainer: Open Folder in Container..." 将仓库作为 devcontainer 打开)。
5. 运行 `forge build` 来初始化项目。
## 使用方法
每个挑战由以下部分组成:
- 位于 `src//README.md` 的说明。
- 位于 `src//` 的一组合约。
- 位于 `test//.t.sol` 的 [Foundry 测试](https://book.getfoundry.sh/forge/tests)。
要解决一个挑战:
1. 阅读挑战的说明。
2. 找出挑战智能合约中的缺陷。
3. 在相应的测试文件中编写你的解决方案。
4. 使用 `forge test --mp test//.t.sol` 测试你的解决方案。
如果测试通过,说明你已经解决了该挑战!
挑战可能有不止一种解决方案。
### 规则
- 你必须始终使用 `player` 账户。
- 你不得修改挑战的初始或最终条件。
- 你可以编写并部署你自己的智能合约。
- 必要时,你可以使用 Foundry 的作弊码来推进时间。
- 你可以导入未安装的外部库,尽管这通常不是必需的。
## 故障排除
你可以在[讨论区](https://github.com/theredguild/damn-vulnerable-defi/discussions)向社区寻求帮助。
## 免责声明
本仓库中的所有代码、实践和模式都**极其脆弱**,仅用于教育目的。
**请勿在生产环境中使用。**
标签:DeFi, Foundry, Solidity, 以太坊, 借贷池, 元交易, 区块链安全, 升级模式, 去中心化交易所, 安全培训, 安全测试, 安全靶场, 审计教学, 攻击性安全, 时间锁, 智能合约, 智能合约钱包, 治理攻击, 漏洞复现, 金库, 闪电贷攻击, 预言机操纵