CTFd เป็น Framework สำหรับการแข่งขัน Capture The Flag แบบ Jeopardy คือการเป็นตอบคำถามเป็นหมวดๆ เป็นข้อๆ ตามภาพด้านล่าง โดยแข่งขันกันว่าใครจะตอบคำถามได้เร็วที่สุด ซึ่ง CTFd ทำให้คนที่ต้องการจัดการแข่งขันไม่ต้องวุ่นวานในเรื่องการคิด Framework การลงทะเบียนและคิดคะแนนต่างๆ ไปวุ่นกับเรื่องการคิดคำถามแทนนั่นเอง ซึ่งช่วยประหยัดเวลาให้กับทีมผู้จัดการแข่งขันอย่างมาก โดยวันนี้ผมจะเอาวิธีง่ายๆมาให้ใช้คือการ deploy docker ของ CTFd นั่นเอง
1. ติดตั้ง Application ต่างๆ
1 |
apt-get install apt-transport-https build-essential ca-certificates curl software-properties-common python-pip |
2. ติดตั้ง docker repository
1 2 3 4 5 |
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" |
3. Update apt and install docker
1 2 |
apt-get update apt-get install docker-ce |
4. Clone CTFd source code
1 |
git clone https://github.com/isislab/CTFd.git |
5. ติดตั้ง application อื่นๆ
1 2 |
cd CTFd ./prepare.sh |
6. Install docker image สำหรับการรัน CTFd
1 |
docker-compose up |
หากพบปัญหาสามารถแก้ไขได้โดยใช้คำสั่ง
1 2 |
docker-compose build --no-cache docker-compose up |
7. ทดสอบใช้งานผ่าน <ctfd_ip>:8000 ได้เลยครับ
จริงๆมีอีกหลายวิธีการในการติดตั้ง ไม่ว่าจะเป็นการใช้งานผ่าน gunicorn, nginx + uwsgi, Apache + mod_wsgi ลองสามารถหาอ่านดูได้จาก source ครับ
Source:: CTFd