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安全, 云资产清单, 信息安全, 元数据分析, 元数据隐藏, 凯撒密码, 加密, 取证, 夺旗赛, 学习, 安全防御评估, 容器化, 密码学, 密码破解, 手动系统调用, 挑战, 漏洞扫描器, 版权保护, 网络安全, 蓝队分析, 请求拦截, 逆向工具, 逆向工程, 隐私保护