vandeurensam/ctf-caesar-challenge
GitHub: vandeurensam/ctf-caesar-challenge
一个基于 Docker Compose 的 CTF 练习环境,提供凯撒密码、图像取证与 HTTP 头部等多类交互式安全挑战。
Stars: 0 | Forks: 0
# CTFd 凯撒密码挑战
一个完整的 CTF(夺旗赛)设置,包含多个交互式挑战。
## 📋 可用挑战
### 1. 🔐 凯撒密码(密码学)- 100 分
一个经典的密码学挑战。通过找到正确的位移值来解密加密的消息。
**Flag:**`CTF{c43s4r_c1ph3r_m4st3r}`
### 2. 🖼️ 图像元数据(取证)- 150 分
在图像的 EXIF 元数据中寻找隐藏的标志。了解元数据如何存储在图像中。
**Flag:**`CTF{3x1f_m3t4d4t4_5ecr3t}`
### 3. 🌐 HTTP 头部与 Cookie(Web)- 100 分
在 HTTP 响应头部和 Cookie 中寻找隐藏的标志。使用浏览器开发者工具或可用工具。
**Flag:**`CTF{http_h34d3r_s3cr3t}`
**访问地址:** http://localhost:5000
## 🚀 快速开始
### 要求
- 已安装 Docker 和 Docker Compose
### 选项 1:Docker Compose(推荐)
```
git clone https://github.com/vandeurensam/ctf-caesar-challenge.git
cd ctf-caesar-challenge
docker compose up -d
```
**服务:**
- CTFd:http://localhost:8000
- HTTP 头部挑战:http://localhost:5000
### 选项 2:手动设置
```
# 开始 CTFd
docker run -d --name ctfd -p 8000:8000 ctfd/ctfd
# 凯撒密码挑战
docker build -f Dockerfile.caesar -t caesar-challenge:latest .
docker run -it caesar-challenge:latest
# 图像元数据挑战
docker build -f Dockerfile.image_metadata -t image-metadata-challenge:latest .
docker run -it image-metadata-challenge:latest
# HTTP 标头挑战
docker build -f Dockerfile.http_headers -t http-headers-challenge:latest .
docker run -it -p 5000:5000 http-headers-challenge:latest
```
## 🎯 挑战解决
### 挑战 1:凯撒密码
```
docker run -it caesar-challenge:latest
```
**步骤:**
1. 你会看到一个加密的消息
2. 尝试不同的位移值(0-25)
3. 输入 `3` 作为正确答案
4. 标志将被显示
5. 在 CTFd 上提交
### 挑战 2:图像元数据
```
docker run -it image-metadata-challenge:latest
```
**步骤:**
1. 你会收到 `help` 和 `exit` 命令
2. 输入 `help`
3. 你会看到图像的 EXIF 元数据
4. 查找包含标志的字段
5. 在 CTFd 上提交
**可使用的工具:**
- `exiftool`(命令行)
- Python 配合 PIL/piexif
- 在线 EXIF 查看器
### 挑战 3:HTTP 头部与 Cookie
在浏览器中打开 http://localhost:5000
**方法 1:浏览器开发者工具**
1. 按下 F12
2. 切换到 Network(网络)标签
3. 刷新页面
4. 检查 Response Headers(响应头部)中的可疑条目
5. 查找以 "X-" 开头的头部
**方法 2:使用可用按钮**
1. "Fetch Response Headers" - 查看所有头部
2. "Check Cookies" - 查看 Cookie
3. "Inspect Full Response" - 查看完整数据
## 📁 文件结构
```
.
├── caesar_challenge.py # Caesar cipher challenge
├── Dockerfile.caesar # Caesar challenge container
├── image_metadata_challenge.py # Image metadata challenge
├── Dockerfile.image_metadata # Image metadata container
├── http_headers_challenge.py # HTTP headers/cookies challenge
├── Dockerfile.http_headers # HTTP challenge container
├── docker-compose.yml # Alle services
├── add_all_challenges.py # Add alle challenges aan CTFd
├── .gitignore # Git ignore rules
└── README.md # Dit bestand
```
## 🐳 Docker 命令
```
# 全部启动
docker compose up -d
# 全部停止
docker compose down
# 查看日志
docker compose logs -f
# 特定服务日志
docker logs -f ctfd
docker logs -f http-challenge
docker logs -f image-challenge
# 执行挑战
docker run -it caesar-challenge:latest
docker run -it image-metadata-challenge:latest
docker run -it -p 5000:5000 http-headers-challenge:latest
```
## 🔧 CTFd 设置
首次启动时:
1. 打开 http://localhost:8000
2. 完成设置向导
3. 创建管理员账户
4. 挑战将自动显示
**手动添加挑战:**
```
docker cp add_all_challenges.py ctfd:/tmp/
docker exec ctfd python /tmp/add_all_challenges.py
```
## 🛠️ 故障排除
**挑战未在 CTFd 中显示?**
```
docker cp add_all_challenges.py ctfd:/tmp/
docker exec ctfd python /tmp/add_all_challenges.py
```
**HTTP 挑战端口冲突?**
```
# 在 docker-compose.yml 中调整端口
# 或使用其他端口执行
docker run -d -p 5001:5000 http-headers-challenge:latest
```
**Docker 守护进程未运行?**
- 启动 Docker Desktop 或 Docker 守护进程
**无法克隆 GitHub?**
- 确保你有网络连接
- 如果使用 SSH,请检查 SSH 密钥
## 📚 学习资源
### 凯撒密码
- [凯撒密码 - Wikipedia](https://en.wikipedia.org/wiki/Caesar_cipher)
- [密码学基础](https://en.wikipedia.org/wiki/Cryptography)
### EXIF 数据
- [EXIF 数据 - Wikipedia](https://en.wikipedia.org/wiki/Exif)
- [ExifTool 文档](https://exiftool.org/)
- [图像取证](https://en.wikipedia.org/wiki/Digital_forensics)
### HTTP 协议
- [HTTP 头部 - MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers)
- [HTTP Cookie - MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies)
- [浏览器开发者工具](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_are_browser_developer_tools)
## 📝 挑战详情
| 挑战 | 类别 | 分数 | 难度 | 类型 |
|-----------|-----------|--------|-------------|------|
| 凯撒密码 | 密码学 | 100 | 简单 | 经典 |
| 图像元数据 | 取证 | 150 | 简单-中等 | 取证 |
| HTTP 头部与 Cookie | Web | 100 | 简单 | Web 安全 |
| **总计** | | **350** | | |
## 🎓 你将学到
- **凯撒密码**:经典密码学,暴力破解
- **EXIF 元数据**:数字取证,元数据分析
- **HTTP 头部**:Web 安全,网络协议,开发者工具
## 🚩 分数追踪
在 CTFd 上提交你的标志:
1. http://localhost:8000
2. 点击 "Challenges"
3. 点击对应挑战
4. 输入标志
5. 点击 "Submit"
**总分可能:350 分**
## 📄 许可证
MIT
**祝你在 CTF 中好运!** 🚩
如有疑问或问题,请查看故障排除章节或在 GitHub 上创建 issue。
标签:CIDR输入, Cookie, CTFd, DevTools, Docker, DOS头擦除, HTTP响应头, HTTP头部, meg, NIDS, Web安全, 云资产清单, 信息安全, 元数据分析, 元数据隐藏, 凯撒密码, 加密, 取证, 夺旗赛, 学习, 安全防御评估, 容器化, 密码学, 密码破解, 手动系统调用, 挑战, 漏洞扫描器, 版权保护, 网络安全, 蓝队分析, 请求拦截, 逆向工具, 逆向工程, 隐私保护