The picoCTF Platform 2 is the infrastructure on which picoCTF runs. The platform is designed to be easily adapted to other CTF or programming competitions.
picoCTF Platform 2 targets Ubuntu 14.04 LTS but should work on just about any "standard" Linux distribution. It would probably even work on Windows. MongoDB must be installed; all default configurations should work.
- Download VirtualBox (easiest, though others can work)
- Download Vagrant (vagrantup.com)
vagrant upinside the repo- Wait 20 minutes
vagrant sshto connect to the VM- Run
devployto deploy the development version of the site - Go to port 8080 on the Host Machine
- Remember to always use 127.0.0.1:8080 not localhost:8080
Note: The competition has two modes: competition active and competition inactive. In inactive mode, there are no problems and only registration is available. To change what mode the competition is in, edit api/api/config.py and change the competition dates such that the current date is either inside or outside the range of the competition dates.
- Run
cd ~/api - Run
python3 api_manager.py -v problems load /vagrant/example_problems/ graders/ ../problem_static/ - Run
python3 api_manager.py autogen build 100 - Run
devploy
The platform comes with a series of regression tests that should be run before any change is committed to the API. To run the tests:
vagrant sshinto your virtual machine.- Run
devployto bring up an instance from your latest code. - To be able to import the API,
cd apiand run the tests with./run_tests.sh
All tests should pass with your changes.
A detailed explanaion of the basics of the picoCTF Platform 2 can be found in our Getting Started Guide (GettingStarted.md).
We are happy to help but no support is guaranteed.
Authors: Jonathan Burket, Tim Becker, Chris Ganas
Copyright: Carnegie Mellon University
License: MIT
Maintainers: Roy Ragsdale
Credits: David Brumley, Tim Becker, Chris Ganas, Peter Chapman, Jonathan Burket
Email: rragsdale@cmu.edu