ctfd連線mysql CTFd搭建筆記

2021-10-18 05:38:02 字數 2348 閱讀 2661

概述

ctfd是一款基於apache2.0的協議的開源ctf平台,最新版本目前為1.20。該平台功能強大,基本上能夠滿足目前的ctf競賽需求,同時,該平台提供了強大的外掛程式功能,可以自己進行外掛程式開發實現自己的功能。

注意事項

本次平台的搭建是在本地虛擬機器ubuntu 14.04 lts下完成的,請保證系統環境正常。如果需要部署在雲伺服器上,請準備好ssh工具(推薦xshell)道理大體相同,做只是最後為了讓訪問更流暢需要做下優化,nginx+gunicorn 文章末尾會做說明!

部署平台

0.網路和系統環境

虛擬機器的話最好使用橋接,提前排除這個出錯的可能性,雲伺服器可以忽略這一點

1.安裝git

sudo apt install git

2.安裝pip

sudo apt install python-pip

3.安裝flask

sudo pip install flask

至此如果就已經出現許多依賴問題,最好耐心解決掉,通常全新安裝的系統出現的問題會比較多

sudo git clone

chmod -r 777 ctfd/

資料庫部署後請修改ctfd目錄下的config.py檔案:

原**:

sqlalchemy_database_uri = os.environ.get('sqlite:///{}/ctfd.db?charset=utf8') or 'sqlite:///{}/ctfd.db'.format(os.path.dirname(os.path.abspath(__file__)))

修改為:

sqlalchemy_database_uri = os.environ.get('database_url') or 'mysql+pysql://資料庫使用者名稱:使用者密碼@localhost/資料庫名?charset=字元編碼'.format(os.path.dirname(os.path.abspath(__file__)))

舉例:sqlalchemy_database_uri = os.environ.get('database_url') or 'mysql+pysql://ctfd:123456@localhost/ctfd?charset=utf8'.format(os.path.dirname(os.path.abspath(__file__)))

以上是常規安裝平台才需要做的步驟,安裝方式下面會介紹

5.安裝ctfd

常規方式

# 轉殖庫

git clone

cd ctfd/

# 安裝作業系統需要安裝的包

./prepare.sh

# 安裝python需要的包

pip install -r requirements.txt

# 執行ctfd

python serve.py

完成以上步驟只是在本地搭起伺服器,要是想在公網(物理機)訪問,還需要安裝gunicorn

pip install gunicorn

// 這裡加了()還有&是為了那能夠後台執行 [0.0.0.0]不用修改

//gunicorn的命令一定要進ctfd目錄輸入

//訪問虛擬機器(伺服器)公網ip即可看見平台

如果你是在虛擬機器部署,請切換為nat連線,在vm虛擬網路編輯器上,將虛擬機器的8000埠對映到本機上,即可實現物理機訪問,橋接模式即可直接在區域網內共享平台

docker

git clone

cd ctfd/

docker-compose up

然後訪問鏈結 http://localhost:8000 即可

可以修改docker配置檔案更改對映埠,我也準備去惡補下docker神器的使用了

✔推薦使用docker部署平台,無需苦惱環境問題,直接pull官方提供的依賴環境,搭建後的訪問速度明顯提公升~

ps:在雲伺服器搭建,請先在安全組裡開放8000埠

diy剛搭建好,肯定想著修改平台,你可以在ctfd/ctfd主題目錄下慢慢修改,建議copy到本地使用編輯器ctrl+f修改頁面,這裡就不多做介紹了,展示一下我自己的就好了,因為不喜歡花裡胡哨,所以比較簡陋,官方也有提供wiki 主題、外掛程式都有~

image

壓縮包密碼:qymua.com(平台未進行任何配置和優化)

壓縮包大小:3.01g

解壓後大小:13g

壓縮包md5:ef601c06af91f4c7532cbeaac7b324f0

密碼:da8m

思考我們都知道不管是部署**還是部署平台,配置環境都挺麻煩的,遇到問題也是常有的事情,那麼利用bt面板一鍵部署環境以後,再按部就班部署平台是更順利呢?還是遇到更多不可**的問題?如果可以,那麼後期維護會很方便,建議在本地模擬一遍再嘗試在伺服器上部署!

ctfd連線mysql CTFd搭建筆記

其實還有很多其他開源的ctf平台,之所以選擇ctfd主要考慮到簡便,成本低,diy幾個特性,fbctf也是個很棒的比賽平台,介面很炫酷,但是資源占用比較大,另外因為被強,部署難度較麻煩,親測後決定放棄。minictf功能不能滿足需求。至於想深入了解去ctfd官網巧巧吧!ctfd是一款基於apache...

CTFd平台搭建記錄

其實這些內容在官方文件中都有,只是想在部落格再記錄一下,提高一下自己的熟悉程度 ctfd平台是在flask框架下寫的,所以得先安裝flask 安裝pip sudo apt install python pip安裝flasksudo pip install flaskcd ctfd 1.0.5 sud...

Ubuntu 19 04映象下安裝CTFd平台

參考自 當你安裝好自己的最新映象的時候一定要記得先更新源和軟體 更新源 sudo apt get update 更新軟體 sudo apt get upgrade 這時候檢視系統自帶的python版本python是什麼版本,最好是更新為python3版本以上的 本次我直接安裝了 sudo apt g...