Rockerran21/Practicle-CTF-Strategies
GitHub: Rockerran21/Practicle-CTF-Strategies
面向网络安全课堂的多领域CTF实操练习题集,帮助学生建立系统化的安全调查与分析习惯。
Stars: 0 | Forks: 0
# CTF 策略实践
这是一个用于多个夺旗赛领域网络安全实操练习挑战的课堂仓库。其目标是帮助学生建立实际的调查习惯:仔细检查工件,记录他们的推理过程,恢复 flag,并解释他们是如何解决每个挑战的。
本仓库旨在用于学习,而非施加比赛压力。这些挑战可用于课堂、实验课、家庭作业、研讨会或自主练习。
## 领域
挑战将按主题进行组织。目前的计划包括:
- Forensics(数字取证)
- Web Exploitation(Web 漏洞利用)
- Network Analysis(网络分析)
- Reverse Engineering(逆向工程)
- Cryptography(密码学)
- OSINT(开源情报)
- Miscellaneous(杂项)
随着课程的推进,可能会添加额外的领域。
## 仓库结构
```
Practice-CTF-Strategies/
├── README.md
├── forensics/
│ └── silent-gallery/
│ ├── README.md
│ ├── gallery.png
│ ├── incident_report.txt
│ └── unlock.js
├── web/
├── network-analysis/
├── reverse-engineering/
├── cryptography/
├── osint/
├── misc/
└── templates/
└── challenge-template.md
```
每个挑战应存放在具有显著名称的独立文件夹中。面向学生的挑战文件应包含在该文件夹中。官方解决方案不应放置在公开的挑战文件夹中。
## Flag 格式
除非挑战另有说明,否则 flag 使用以下格式:
```
flag{example_flag_here}
```
请提交完整的 flag,包括 `flag{}`。
## 如何进行挑战
1. 打开挑战文件夹。
2. 阅读挑战的 `README.md`。
3. 下载或检查提供的文件。
4. 对命令、观察结果和失败的尝试做好记录。
5. 恢复 flag。
6. 准备好解释你的解题思路。
最终答案很重要,但推理过程同样重要。没有解释的正确 flag 可能无法获得满分。
## 学生守则
- 请勿修改或删除共享仓库中的挑战文件。
- 请勿公开 flag 或完整的解决方案。
- 请勿与同学分享直接答案。
- 你可以讨论一般方法、工具和概念。
- 你可以使用文档、手册和合法的安全工具。
- 如有疑问,请在使用自动化漏洞利用工具前请求澄清。
## 推荐工具
不同的挑战需要不同的工具。以下是一些有用的起点:
- `file`:用于识别文件类型
- `strings`:用于提取可打印文本
- `exiftool`:用于元数据检查
- `binwalk`:用于发现内嵌文件
- `xxd` 或 `hexdump`:用于字节级检查
- `CyberChef`:用于编码和解码实验
- `Wireshark`:用于数据包分析
- `Audacity` 或 `Sonic Visualiser`:用于音频和频谱图分析
- `Ghidra`:用于逆向工程
- 浏览器开发者工具:用于 Web 挑战
- Python:用于编写小型解码器或解析器脚本
工具的选择是学习过程的一部分。不要假设一个工具能解决所有挑战。
## 挑战难度
挑战难度是近似评估的:
- Beginner(入门级):介绍一个主要思想或工具
- Intermediate(中级):结合多个步骤或需要更深入的分析
- Advanced(高级):需要链接多种技术、编写脚本或处理误导性工件
根据你对该领域的经验,挑战可能会让你感觉更容易或更难。
## 挑战文件夹模板
每个挑战都应包含一个简短的 `README.md`,并使用以下结构:
```
# Challenge 名称
Category: Forensics
Difficulty: Intermediate
Author: Instructor
## 描述
Brief story or scenario for the challenge.
## Provided Files
- file1.ext
- file2.ext
## 目标
Recover the flag.
## Flag 格式
flag{...}
## 注意事项
Any rules, warnings, or special instructions.
```
## 当前挑战
| 领域 | 挑战 | 难度 | 主要技能 |
| --- | --- | --- | --- |
| Forensics(数字取证) | Silent Gallery | Intermediate(中级) | 文件雕刻、频谱图分析、空白字符隐写术、基础逆向工程 |
## Flag 验证
对于课堂使用,有三种实用的方法可以验证 flag:
1. 由讲师手动验证。
2. GitHub Pages 验证器,根据哈希值检查提交的 flag。
3. 专用的 CTF 平台,例如 CTFd。
对于日常练习,GitHub Pages 验证器简单且免费,但学生可以检查客户端代码。对于严格的评分、隐藏 flag、账户、提示和排行榜,CTFd 是更好的选择。
推荐设置:
- 保持本仓库公开,且仅包含面向学生的文件。
- 将官方解决方案保存在单独的私有仓库中。
- 如果需要自动评分和分数跟踪,请使用 CTFd。
## 讲师须知
请勿将官方题解、源生成器、答案密钥或原始 flag 放置在公开文件夹中,除非该挑战已退役。
一份良好的私有解决方案记录应包含:
- Flag
- 预期解题路径
- 所需工具
- 提示阶梯
- 评分标准
- 常见错误
- 清理或重置说明(如果需要)
## 免责声明
这些挑战用于受控课堂环境中的教育目的。学生只能测试明确为课程提供的、或他们有权限进行分析的系统、文件和服务。
标签:CTF练习, ESC4, OPA, OSINT, Web安全, Web渗透, 云资产清单, 夺旗练习, 夺旗赛, 学习库, 学生练习, 安全培训, 安全教育, 安全教育实验, 安全竞赛, 实操练习, 实验, 实验室资源, 密码学, 手动系统调用, 教学资源, 数字取证, 数据可视化, 杂项, 电子取证, 系统分析, 网络分析, 网络安全, 网络安全课程, 自动化脚本, 蓝队分析, 解题思路, 逆向工具, 逆向工程, 防御加固, 隐私保护, 靶场, 黑客技术