TheGhostPacket/cyberctf-platform

GitHub: TheGhostPacket/cyberctf-platform

一个基于 Flask 构建的综合夺旗赛训练平台,通过多类别实战挑战帮助用户系统学习网络安全知识与技能。

Stars: 0 | Forks: 0

# 🚩 CyberCTF 平台
![CyberCTF Platform](https://img.shields.io/badge/CyberCTF-Platform-brightgreen?style=for-the-badge) ![Flask](https://img.shields.io/badge/Flask-2.3.3-blue?style=for-the-badge&logo=flask) ![Python](https://img.shields.io/badge/Python-3.8+-yellow?style=for-the-badge&logo=python) ![SQLite](https://img.shields.io/badge/SQLite-Database-lightgrey?style=for-the-badge&logo=sqlite) ![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge) **一个用于网络安全教育和培训的综合夺旗赛 (CTF) 平台** [🚀 在线演示](https://cyberctf-platform.onrender.com) • [🐛 报告 Bug](https://github.com/TheGhostPacket/cyberctf-platform/issues) • [💡 提出新功能](https://github.com/TheGhostPacket/cyberctf-platform/issues)
## 📋 目录 - [概述](#-overview) - [功能](#-features) - [演示](#-demo) - [技术栈](#-technology-stack) - [安装说明](#-installation) - [使用说明](#-usage) - [挑战类别](#-challenge-categories) - [API 文档](#-api-documentation) - [部署](#-deployment) - [贡献指南](#-contributing) - [安全](#-security) - [许可证](#-license) - [联系方式](#-contact) ## 🎯 概述 CyberCTF 平台是一个专业级的夺旗赛 (CTF) 平台,专为网络安全教育和培训而设计。它基于 Flask 构建,包含跨越多个安全领域的实时挑战,通过实践操作提供了一种引人入胜的学习网络安全概念的方式。 **非常适合:** - 🎓 教授网络安全的**教育机构** - 🏢 **企业培训**项目 - 👨‍💻 想要练习安全技能的**个人学习者** - 🏆 **CTF 竞赛**和活动 ## ✨ 功能 ### 🏆 **竞赛功能** - **20+ 教育类挑战** - Web 安全、密码学、网络安全、密码破解、逆向工程 - **渐进式难度系统** - 从初学者到中等难度 - **实时计分系统** - 实时积分追踪和排行榜更新 - **详尽的解析** - 了解每个解决方案背后的“原因” - **增强的提示系统** - 通过具有教育意义的提示进行引导学习 - **类别进度追踪** - 每个领域的可视化进度条 ### 👥 **用户管理** - **安全的身份验证** - 使用 Werkzeug 进行密码哈希处理 - **用户资料** - 追踪进度和成就 - **会话管理** - 安全的用户会话 - **注册系统** - 便捷的账户创建 ### 📊 **分析与追踪** - **实时排行榜** - 实时竞赛排名 - **进度追踪** - 监控已解决的挑战和分数 - **提交历史** - 追踪所有 flag 提交尝试 - **性能统计** - 详细的用户分析 ### 🎨 **用户体验** - **现代黑客主题 UI** - 沉浸式的网络安全美学 - **移动端响应式** - 适配所有设备 - **实时反馈** - 即时的成功/错误通知 - **直观的导航** - 易于使用的界面 ## 🎮 演示 ### 🌐 **在线演示** 试用平台:**[https://cyberctf-platform.onrender.com](https://cyberctf-platform.onrender.com)** ### 🧪 **测试凭证** ``` Registration: Create your own account Sample Challenges Available: 7 challenges across 5 categories ``` ### 📸 **截图**
| 首页 | 仪表盘 | 挑战 | |-----------|-----------|------------| | ![Home](https://via.placeholder.com/300x200?text=Home+Page) | ![Dashboard](https://via.placeholder.com/300x200?text=Dashboard) | ![Challenges](https://via.placeholder.com/300x200?text=Challenges) |
## 🛠️ 技术栈 ### **后端** - **Flask 2.3.3** - Python Web 框架 - **SQLite** - 轻量级数据库 - **Werkzeug** - 密码哈希和安全 - **Python 3.8+** - 编程语言 ### **前端** - **HTML5 & CSS3** - 现代网络标准 - **JavaScript (Vanilla)** - 交互功能 - **Font Awesome** - 图标库 - **响应式设计** - 移动友好的布局 ### **部署** - **Render.com** - 云托管平台 - **Gunicorn** - Python WSGI HTTP 服务器 - **Git** - 版本控制 ## 🚀 安装说明 ### **前置条件** - Python 3.8 或更高版本 - Git - Web 浏览器 ### **本地开发设置** 1. **克隆仓库** ``` git clone https://github.com/TheGhostPacket/cyberctf-platform.git cd cyberctf-platform ``` 2. **创建虚拟环境** ``` python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate ``` 3. **安装依赖** ``` pip install -r requirements.txt ``` 4. **运行应用程序** ``` python app.py ``` 5. **在浏览器中打开** ``` http://localhost:5000 ``` ### **Docker 设置** (可选) ``` # 构建 image docker build -t cyberctf-platform . # 运行 container docker run -p 5000:5000 cyberctf-platform ``` ## 📖 使用说明 ### **入门指南** 1. **注册账户** - 访问注册页面 - 创建用户名、邮箱和密码 - 登录以访问挑战 2. **选择挑战类别** - 导航到仪表盘 - 从可用类别中进行选择 - 查看难度和积分值 3. **解决挑战** - 阅读挑战描述 - 寻找隐藏的 flag - 以 `FLAG{solution}` 格式提交 - 如有需要可使用提示 4. **追踪进度** - 在仪表盘上查看你的分数 - 查看排行榜排名 - 监控已解决的挑战 ### **挑战格式** 所有 flag 均遵循以下格式:`FLAG{content}` 示例:`FLAG{welcome_to_ctf}` ## 🎯 挑战类别 ### 🔓 **Web 安全** (6 个挑战) 学习 Web 应用安全基础知识: - **HTML 侦探** (50 分) - HTML 源代码分析 - **Cookie 检查器** (75 分) - 浏览器 Cookie 调查 - **简单的 SQL 注入** (150 分) - 数据库绕过技术 - **URL 参数篡改** (100 分) - 参数篡改 - **JavaScript 控制台秘密** (80 分) - 控制台调试 - **HTTP Headers 调查** (120 分) - Header 分析 ### 🔐 **密码学** (5 个挑战) 掌握编码和加密概念: - **Caesar 密码入门** (75 分) - ROT13 解码 - **Base64 编码** (50 分) - Base64 转换 - **MD5 哈希侦探** (100 分) - 哈希破解基础 - **十六进制解码器** (80 分) - Hex 到 ASCII 转换 - **二进制信息** (120 分) - 二进制到文本转换 ### 🌐 **网络安全** (3 个挑战) 了解网络协议和分析: - **端口知识问答** (60 分) - 常见端口识别 - **DNS 查找挑战** (100 分) - DNS 记录调查 - **网络协议识别** (80 分) - 协议分析 ### 🔑 **密码破解** (3 个挑战) 学习密码安全原则: - **弱密码分析** (90 分) - 常见密码漏洞 - **密码强度问答** (70 分) - 安全最佳实践 - **哈希类型识别** (60 分) - 哈希格式识别 ### 🔍 **逆向工程** (3 个挑战) 培养分析和解码技能: - **ASCII 艺术侦探** (100 分) - ASCII 十进制转换 - **简单的 XOR 密码** (150 分) - XOR 密码学 - **文件签名分析** (120 分) - 文件类型识别 **总计:20 个教育类挑战,价值 1,635 分!** ## 🔌 API 文档 ### **身份验证端点** ``` POST /register - Create new user account POST /login - User authentication GET /logout - End user session ``` ### **挑战端点** ``` GET /dashboard - User dashboard GET /challenges/ - Category challenges POST /submit_flag - Submit challenge solution GET /leaderboard - Competition rankings ``` ### **响应格式** ``` { "success": "Operation successful message", "error": "Error description if failed" } ``` ## 🌐 部署 ### **部署到 Render** 1. **Fork 此仓库** 2. **连接到 Render:** - 访问 [render.com](https://render.com) - 创建新的 Web Service - 连接 GitHub 仓库 3. **配置部署:** Build Command: pip install -r requirements.txt Start Command: python app.py Environment: Python 3 4. **环境变量** (可选): FLASK_ENV=production SECRET_KEY=your-secret-key-here ### **部署到 Heroku** ``` # 安装 Heroku CLI 并登录 heroku create your-app-name git push heroku main ``` ### **部署到 AWS/DigitalOcean** 详细的部署指南可在 `docs/` 文件夹中找到。 ## 🤝 贡献指南 我们欢迎各种贡献!以下是你可以提供帮助的方式: ### **贡献方式** - 🐛 **Bug 报告** - 报告你发现的问题 - 💡 **功能请求** - 提出新功能建议 - 🔧 **代码贡献** - 提交 pull request - 📚 **文档** - 改进文档和教程 - 🎯 **新挑战** - 添加更多 CTF 挑战 ### **开发流程** 1. **Fork 此仓库** 2. **创建功能分支** git checkout -b feature/amazing-feature 3. **进行修改** 4. **全面测试** 5. **提交 pull request** ### **添加新挑战** ``` # 添加到 app.py 中的 challenges list { 'title': 'Your Challenge Name', 'description': 'Challenge description with instructions', 'category': 'Web Security', # or other category 'points': 300, 'flag': 'FLAG{your_solution_here}', 'hint': 'Helpful hint for users', 'challenge_data': 'Additional challenge data if needed' } ``` ### **代码规范** - Python 代码遵循 PEP 8 规范 - 使用有意义的变量名 - 为复杂的逻辑添加注释 - 测试所有新功能 ## 🔒 安全 ### **安全特性** - ✅ **密码哈希** - Werkzeug 安全哈希 - ✅ **会话管理** - 安全的用户会话 - ✅ **输入验证** - 防止注入攻击 - ✅ **SQL 注入保护** - 参数化查询 - ✅ **XSS 预防** - 模板转义 ### **报告安全问题** 如果你发现安全漏洞,请发送电子邮件至: 📧 **contact@theghostpacket.com** **请勿针对安全漏洞公开 issue。** ## 📊 项目统计 - 横跨 5 个类别的 **20** 个挑战 - 每个挑战均有**教育性解析** - 从初学者到中等难度的**渐进式挑战** - 总计 **1,635** 个可用积分 - 教授相关概念的**详细提示** - **500+** 行 Python 代码 - **800+** 行 HTML/CSS/JS 代码 - **移动端响应式**设计 - 带有实时解析的**实时**功能 ## 🗺️ 路线图 ### **2.0 版本** (计划中) - [ ] **团队竞赛模式** - [ ] **实时聊天系统** - [ ] 用于挑战管理的**管理面板** - [ ] **邮箱验证**系统 - [ ] **社交登录** (Google, GitHub) - [ ] 带有徽章的**成就系统** - [ ] **用于外部工具的 API** - [ ] **Docker 容器化** ### **2.1 版本** (未来) - [ ] **高级分析仪表盘** - [ ] **自定义挑战构建器** - [ ] **锦标赛模式** - [ ] **移动应用程序** (React Native) - [ ] **与安全工具集成** ## 📄 许可证 本项目基于 MIT 许可证授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。 ``` MIT License Copyright (c) 2024 TheGhostPacket Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. ``` ## 📞 联系与支持
### **由 TheGhostPacket 创建** [![Portfolio](https://img.shields.io/badge/Portfolio-theghostpacket.com-blue?style=for-the-badge&logo=firefox)](https://theghostpacket.com) [![GitHub](https://img.shields.io/badge/GitHub-TheGhostPacket-black?style=for-the-badge&logo=github)](https://github.com/TheGhostPacket) [![Email](https://img.shields.io/badge/Email-contact@theghostpacket.com-red?style=for-the-badge&logo=gmail)](mailto:contact@theghostpacket.com)
### **支持** - 📧 **邮箱**: contact@theghostpacket.com - 🐛 **Bug 报告**: [GitHub Issues](https://github.com/TheGhostPacket/cyberctf-platform/issues) - 💬 **功能请求**: [GitHub Discussions](https://github.com/TheGhostPacket/cyberctf-platform/discussions) ### **致谢** - **Flask 社区** 提供了优秀的 Web 框架 - **网络安全社区** 提供了灵感和最佳实践 - **开源贡献者** 让此类项目成为可能
### **⭐ 如果本项目对你有帮助,请点个 Star!** **为网络安全社区用 ❤️ 构建** ![Visitor Count](https://visitor-badge.glitch.me/badge?page_id=TheGhostPacket.cyberctf-platform)
## 📈 统计 ![GitHub stars](https://img.shields.io/github/stars/TheGhostPacket/cyberctf-platform?style=social) ![GitHub forks](https://img.shields.io/github/forks/TheGhostPacket/cyberctf-platform?style=social) ![GitHub issues](https://img.shields.io/github/issues/TheGhostPacket/cyberctf-platform) ![GitHub pull requests](https://img.shields.io/github/issues-pr/TheGhostPacket/cyberctf-platform) **最后更新**:2025 年 1 月
标签:CTF平台, Flask, Python, SQLite, 安全教育, 安全监控, 数据可视化, 无后门, 请求拦截, 逆向工具