The latest code is at https://github.com/picoCTF/picoCTF. This repo is no longer maintained.
The picoCTF-platform is the infrastructure which is used to run picoCTF. The platform is designed to be easily adapted to other CTF or programming competitions.
wiki. Quick StartAdditional documentation can be found on the
- git clone --recursive https://github.com/picoCTF/picoCTF-platform.git
- cd picoCTF-platform
- vagrant up
- Navigate to http://192.168.2.2/
- Register an account (this user will be the site administrator)
The picoCTF-platform is actively being developed towards version 3 and additional documentation on significant platform changes are located on the wiki.
The picoCTF-platform is a superproject composed of three distinct git submodules (this is why you must use --recursive when you clone the project). The submodules are picoCTF-web, picoCTF-shell-manager, and picoCTF-problems. This repository (picoCTF-platform) consists of the necessary scripts and configurations to pull these three components together into a fully functional deployment for demonstration or development. In order to achieve this reproducible environment the project leverages Vagrant.
The picoCTF-web project consists of the competitor facing web site, the api for running a CTF, as well as management functionality for CTF organizers. This is deployed (via the Vagrantfile) as a virtual machine (web) at http://192.168.2.2/. For more information on this component of the picoCTF-platform please consult the documentation in the repository or on the wiki.
The picoCTF-shell-manager project consists of the hacksport library and the shell_manager utility which are used to create, package, and deploy challenges for use in a CTF. The Vagrantfile uses this to deploy a second virtual machine (shell) at 192.168.2.3. This shell-server is where challenge instances will be deployed and is also where competitors are provided an account for use in solving the challenges. For more information on this component of the picoCTF-platform please consult the documentation in the repository or on the wiki.
The picoCTF-problems project consists of CTF challenges that are compatible with picoCTF-platform. These challenges can be easily shared and deployed, or adapted for use in a CTF. When deployed the picoCTF-platform loads some example problems to demonstrate the features of both the web server and the shell-server. For more information on this component of the picoCTF-platform please consult the documentation in the repository or on the wiki.
We are happy to help but no support is guaranteed.
Authors: Tim Becker, Chris Ganas
Copyright: Carnegie Mellon University
Credits: David Brumley, Tim Becker, Chris Ganas, Peter Chapman, Jonathan Burket
v1 Credits: Collin Petty, Tyler Nighswander, Garrett Barboza