MarsCTF
Vue+Springboot開發的CTF學習平臺,提供動態靶機、學習模塊、writeup模塊等等CTF平臺的核心功能,提供docker版本,
演示視頻:https://www.bilibili.com/video/BV1eA4y1o73C

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

多機部署
- 針對希望把docker API服務器放在其他機器上和平臺分開的情況,通常關閉即可

原理:使用frp將docker API服務器上開啟的容器埠映射到平臺服務器上,埠號不改,如:192.168.48.139:34567 -> 106.54.134.134:34567
docker API服務器上開啟frpc,并開啟frpc API
平臺服務器上開啟frps
隨后根據配置填寫對應引數即可
配置TLS
- 針對內網不安全的情況,增加證書認證,通常關閉即可,

對于debian系的linux,已經提供了便攜的腳本配置
首先修改./marsctf-docker/docker-tls/gen_key.sh里的IP、密碼以及其他元資料資訊
# -------------------------------------------------------------
# 自動創建 Docker TLS 證書
# -------------------------------------------------------------
# 以下是配置資訊
# --[BEGIN]------------------------------
IP="192.168.48.202" # 改為云服務器IP
PASSWORD="b1ackc4tyyds" # 用于docker-api通信的密鑰
# 以下可改可不改
COUNTRY="CN"
STATE="HUBEI"
CITY="WUHAN"
ORGANIZATION="XXSSHH"
ORGANIZATIONAL_UNIT="Dev"
EMAIL="[email protected]"
改后保存,執行
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題目相關聯


-
挑戰模塊
- 提供CTF題目,支持動態靶機
- 題目型別、標簽均可擴展


-
writeup模塊
- 分享解題思路的平臺

-
公告、排行榜等其他功能
docker賽題撰寫
撰寫模式參考https://github.com/CTFTraining/CTFTraining
動態flag通過"FLAG"環境變數注入
宣告
此專案為本人在湖北大學的本科畢業設計,湖北大學已申請了軟體著作權
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/489316.html
標籤:其他
上一篇:Vulnhub-Earth
