The admin can create/edit categories. All questions and submissions must be associated with a category.
The admin can create/edit questions. Users can submit an answer for a question. There can only be one correct answer for a question. It is not case sensitive.
Solved questions appear green to users. They also receive points for each question they solve.
The admin can view a user's username, points and solves. They can also delete a user.
<< Sorting order may need changing >>
Users can be viewed sorted by:
- Username (Descending)
- Username (Ascending)
- Points (Descending)
- Points (Ascending)
- Solves (Descending)
- Solves (Ascending)
A requirements.txt file is located in the server folder
python3 -m pip install -r requirements.txt
cd ~/lab0/server
python3 -m pip install -r requirements.txt
python3 server.py
The following assumes the server will run over HTTPS. Change lab0.tech
to the appropriate domain. It also assumes that you have installed a HTTPS certificate at the following location:
/etc/letsencrypt/live/lab0.tech/fullchain.pem
/etc/letsencrypt/live/lab0.tech/privkey.pem
If this is not the case, the server will instead try to run over HTTP.
To get HTTPS certificates, type the following on the server:
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot
sudo certbot certonly --standalone
To autorenew, add the following into crontab:
0 0 1 * * sudo apt-get update && sudo apt-get upgrade && sudo apt autoremove
0 0 1 * * sudo certbot renew
cd ~/scavhunt/server
sudo apt-get update && sudo apt-get upgrade && sudo apt autoremove
sudo lsof -t -i tcp:443 -s tcp:listen | sudo xargs kill
sudo nohup python3 server.py &
When the server first runs, a settings.ini
file will be automatically created from the settings.example.ini
skeleton.
[SERVER]
port = 443 # Port to listen on
database = data.sqlite3 # SQLite database file
[SITE]
templatesDir = ../site # Jinja template base path
staticDir = ../site # Static file base path
[ADMIN]
username = admin # Superuser username
password = password # Superuser password
This project was originally created by Andrew Wong for the CSESoc Compclub 2019 Summer CTF.
It has been modified by Michael Gribben for CSESoc's Lab 0.
It has then been modified again for CSESoc's [ARG-Event] by Ryan Shi, Hillary Le (graphics) and Kellen Liew (with help from Van-Roy Trinh and Frances Lee).
Jinja2
- Version 2.10.1
tornado
- Version 5.1.1
bulma.css
- Version 0.7.2
Bulma-extensions
normalize.css
- Version 8.0.1
three.js
- Version 98
Font Awesome
Hack
- Version 3.3.0
glitch - sketch of three.js
by yoichi kobayashi
Jinja2 Rendering stub for Tornado
by Bibhas Debnath
Dotted World Map by sNowFleikuN
CSS Scanlines by meduzen
This software is licensed under the MIT License.
You are free to redistribute it and/or modify it under the terms of the license.