CTFs as you need them
 
 
 
 
Go to file
Kevin Chung 51d098080f
Merge Dev into Master (#591)
* Chals endpoint seperation (#572)

* Separate the logic of ctftime and email confirmations and admin checking into decorators
* Separate the chals endpoint into /chals and /chals/:id. Closes #552, #435.
* Challenges are now loaded directly from the server before being displayed to the user. 
* Challenge modals now use `{{ description }}` instead of `{{ desc }}`.
* 403 is now a more common status code and can indicate that a CTF has not begun or that you are not logged in. This is in addition to CSRF failures. 
* Update tests to new behavior

* Fixing glitch if an entry chal or team id isn't defined

* Markdown it (#574)

* Replace Marked with Markdown-It

* Update modal change (#576)

* Switch update modals to use nunjucks instead of JS to load in data. 
* Fix previewing challenges after hitting the challenge update button.
* Fix edit-files issue with an unnecessary request.

* Fix solves button

* Closes #592
2018-04-16 00:24:04 -04:00
.github Issue template (#455) 2017-11-14 16:40:36 -05:00
CTFd Merge Dev into Master (#591) 2018-04-16 00:24:04 -04:00
migrations Adding theme migration (#524) 2017-12-13 16:40:34 -05:00
scripts Add Vagrant with docker support (#285) (#355) 2017-08-20 19:31:32 -04:00
tests Merge Dev into Master (#591) 2018-04-16 00:24:04 -04:00
.dockerignore Adding .dockerignore and making docker-entrypoint consider DATABASE_URL (#312) 2017-07-13 02:43:17 -04:00
.gitignore Add plugin wrappers for plugin related utils functions (#410) 2017-10-14 17:17:06 -04:00
.travis.yml Version 1.1 CTFd (#514) 2017-12-11 06:42:07 -05:00
CHANGELOG.md Marking 1.1.4 (#605) 2018-04-05 14:24:27 -04:00
Dockerfile Improve the flexibility and ease-of-use for docker-compose deployment (#560) 2018-02-11 03:52:21 -05:00
LICENSE Update LICENSE 2016-10-14 00:54:42 -04:00
README.md Marking 1.1.3 (#599) 2018-03-27 12:20:58 -04:00
Vagrantfile Switching to Bento Ubuntu for VMWare support (#481) 2017-11-25 05:39:01 -05:00
development.txt Version 1.1 CTFd (#514) 2017-12-11 06:42:07 -05:00
docker-compose.yml Update docker files (#598) 2018-03-25 04:25:33 -04:00
docker-entrypoint.sh Marking 1.1.3 (#599) 2018-03-27 12:20:58 -04:00
export.py Upgrading exports (#283) 2017-06-16 17:49:37 -04:00
import.py Fix argv mistake 2018-04-15 16:18:16 -04:00
manage.py Marking 1.0.0 (#196) 2017-01-24 23:06:16 -05:00
populate.py Use strings for key type (#409) 2017-10-14 16:37:41 -04:00
prepare.sh Mark prepare.sh executable 2017-09-27 22:32:01 -04:00
requirements.txt Improve the flexibility and ease-of-use for docker-compose deployment (#560) 2018-02-11 03:52:21 -05:00
serve.py Hints (#232) 2017-03-28 21:17:56 -04:00
setup.cfg Starting to write tests 2017-01-07 02:44:31 -05:00

README.md

Build Status CTFd Slack

What is CTFd?

CTFd is a Capture The Flag framework focusing on ease of use and customizability. It comes with everything you need to run a CTF and it's easy to customize with plugins and themes.

CTFd is a CTF in a can.

Features

  • Create your own challenges, categories, hints, and flags from the Admin Interface
    • Static & Regex based flags
    • Users can unlock hints for free or with points
    • File uploads to the server or Amazon S3
    • Limit challenge attempts & hide challenges
    • Automatic submission throttling
  • Scoreboard with automatic tie resolution
    • Hide Scores from the public
    • Freeze Scores at a specific time
    • Dynamic Scoring
  • Scoregraphs comparing the top 10 teams and team progress graphs
  • Markdown content management system
  • SMTP + Mailgun email support
    • Email confirmation support
    • Forgot password support
  • Automatic competition starting and ending
  • Team management & hiding
  • Customize everything using the plugin and theme interfaces
  • Importing and Exporting of CTF data for archival
  • And a lot more...

Install

  1. Run ./prepare.sh to install dependencies using apt.
  2. Modify CTFd/config.py to your liking.
  3. Use python serve.py in a terminal to drop into debug mode.

Or you can use Docker with the following command:

docker run -p 8000:8000 -it ctfd/ctfd

  • Here are some deployment options
  • You can check out the Getting Started guide for a breakdown of some of the features you need to get started.

Live Demo

https://demo.ctfd.io/

Support

To get basic support, you can join the CTFd Slack Community: CTFd Slack

If you prefer commercial support or have a special project, send us an email: support@ctfd.io.

Managed Hosting

Looking to use CTFd but don't want to deal with managing infrastructure? Check out the CTFd website for managed CTFd deployments.

HackerFire

Looking for CTF challenges to work on? HackerFire is a learning focused CTF built using CTFd. It features a wide variety of challenges and is updated with new content frequently. It also contains custom knowledge resources to teach newcomers about the techniques used to solve a challenge.

Credits