发表于 2022-6-23 12:10:52

本科毕设CTF平台-MarsCTF

MarsCTF

Vue+Springboot开发的CTF学习平台,提供动态靶机、学习模块、writeup模块等等CTF平台的核心功能。提供docker版本。
演示视频:https://www.bilibili.com/video/BV1eA4y1o73C
https://img2022.cnblogs.com/blog/2621566/202206/2621566-20220607132323787-466484380.png
Tips: 前后端分离项目,本仓库为后端,前端仓库在https://github.com/b1ackc4t/MarsCTF-client
快速启动

初始管理员用户名/密码:admin/123456
下载 https://github.com/b1ackc4t/MarsCTF/releases 里已经打包好的docker包,解压后执行以下命令:
chmod -R 755 ./marsctf-docker# 赋予足够权限
cd ./marsctf-docker
docker-compose up -d然后访问 http://127.0.0.1:7991 即可,使用其他ip无法访问后端服务。
如要修改访问ip,请修改/marsctf-docker/nginx/html/config.json的BASE_URL_PROD,然后重启服务即可
动态靶机支持

单机部署

配置很简单,首先开启docker API(需要和平台在同一台机器上)
在后台平台配置处配置红框内的参数保存即可,容器返回IP即云服务器IP,docker API的ip推荐使用云服务器的内网ip或者docker0网卡IP
https://img2022.cnblogs.com/blog/2621566/202206/2621566-20220607132345751-227642500.png
多机部署


[*]针对希望把docker API服务器放在其他机器上和平台分开的情况。通常关闭即可
https://img2022.cnblogs.com/blog/2621566/202206/2621566-20220607132355085-2120889896.png
原理:使用frp将docker API服务器上开启的容器端口映射到平台服务器上,端口号不改。如:192.168.48.139:34567 -> 106.54.134.134:34567
docker API服务器上开启frpc,并开启frpc API
平台服务器上开启frps
随后根据配置填写对应参数即可
配置TLS


[*]针对内网不安全的情况,增加证书认证。通常关闭即可。
https://img2022.cnblogs.com/blog/2621566/202206/2621566-20220607132405436-1670980011.png
对于debian系的linux,已经提供了便携的脚本配置
首先修改./marsctf-docker/docker-tls/gen_key.sh里的IP、密码以及其他元数据信息
# -------------------------------------------------------------
# 自动创建 Docker TLS 证书
# -------------------------------------------------------------
# 以下是配置信息
# --------------------------------
IP="192.168.48.202"        # 改为云服务器IP
PASSWORD="b1ackc4tyyds"        # 用于docker-api通信的密钥
# 以下可改可不改
COUNTRY="CN"
STATE="HUBEI"
CITY="WUHAN"
ORGANIZATION="XXSSHH"
ORGANIZATIONAL_UNIT="Dev"
EMAIL="xxxxxxxxx@163.com"改后保存,执行
cd ./marsctf-docker/docker-tls
chmod +x ./gen_key.sh
chmod +x ./startup.sh
./startup.sh脚本会自动完成开启docker-api、产生tls密钥、配置tls密钥一系列步骤。
对于其他linux或者以上脚本失效的情况,则自行配置打开docker api,并配置tls证书,将生成的客户端ca.pem、ca-key.pem、cert.pem、key.pem(名称固定,不然识别不到)复制到./marsctf-docker/main/CertKey,然后重启docker服务即可
功能预览


[*]学习模块

[*]提供体系化学习资料,并和挑战中的CTF题目相关联
https://img2022.cnblogs.com/blog/2621566/202206/2621566-20220607132419630-1162089124.png
https://img2022.cnblogs.com/blog/2621566/202206/2621566-20220607132429755-750506529.png

[*]挑战模块

[*]提供CTF题目,支持动态靶机
[*]题目类型、标签均可扩展
https://img2022.cnblogs.com/blog/2621566/202206/2621566-20220607132438537-2123177443.png
https://img2022.cnblogs.com/blog/2621566/202206/2621566-20220607132447687-746897900.png

[*]writeup模块

[*]分享解题思路的平台
https://img2022.cnblogs.com/blog/2621566/202206/2621566-20220607132459270-843597032.png

[*]公告、排行榜等其他功能
docker赛题编写

编写模式参考https://github.com/CTFTraining/CTFTraining
动态flag通过"FLAG"环境变量注入
声明

此项目为本人在湖北大学的本科毕业设计,湖北大学已申请了软件著作权

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 本科毕设CTF平台-MarsCTF