A CTF platform used in IceCTF 2016
 
 
 
 
Go to file
Fox Wilson db19517b91 finish trouble tickets, notification infrastructure, challenge filtering 2015-11-30 23:05:17 -05:00
docs some docs 2015-11-28 22:11:12 -05:00
modules finish trouble tickets, notification infrastructure, challenge filtering 2015-11-30 23:05:17 -05:00
templates finish trouble tickets, notification infrastructure, challenge filtering 2015-11-30 23:05:17 -05:00
utils finish trouble tickets, notification infrastructure, challenge filtering 2015-11-30 23:05:17 -05:00
.gitignore lots of things! 2015-11-08 14:04:02 -05:00
README.md some docs 2015-11-28 22:11:12 -05:00
app.py finish trouble tickets, notification infrastructure, challenge filtering 2015-11-30 23:05:17 -05:00
config.py \o automatic static file processing o/ 2015-11-29 12:10:38 -05:00
ctferror.py finish trouble tickets, notification infrastructure, challenge filtering 2015-11-30 23:05:17 -05:00
ctftool add eligibility_locked, notification / trouble ticket models 2015-11-29 14:01:22 -05:00
database.py add eligibility_locked, notification / trouble ticket models 2015-11-29 14:01:22 -05:00

README.md

Flagbase

This is the platform for TJCTF. It's (what I think is) the best of the MITRE, CTFd, and picoCTF platforms rolled up into a Flask application.

I'm bad at naming things.

Installation

You're going to want to edit config.py. The variable names should be fairly self-explanatory.

You're going to want to create a file called secrets. It will look like this:

mailgun_url: https://api.mailgun.net/v3/tjctf.org
mailgun_key: key-asdflkjasdhflkjsdahflkhsdaklfjhasd
recaptcha_key: asdlkfjhasdlkjfhlsdakjfh
recaptcha_secret: sdakjfhsdalkfjhsdalkfjh
key: this can be anything you want, it is your flask secret_key

You should edit line 2 of database.py, unless you want to use SQLite. This uses Peewee, so you can use any Peewee-supported database.

You can create some problem YAML files that look like this:

name: Problem Name
author: ME!
category: Binary
description: binary binary binary binary. i love binary
points: 250
flags: "flag{whatever}"

Then add them with ./ctftool add-challenge problem.yml and it'll get put in the database.

Run python app.py and you have a server running. You probably want to deploy it with gunicorn or similar, long-term.