36c83b59bc
* Changing to a new plugin oriented challenge type plugin and fixing extra width on admin chal description * Add window.challenge.submit, renderSubmissionResponse, and csrf_nonce * Update admin side renderer calls * Updating to Flask 1.0 and adding files for flask run * Adding a preliminary case-insensitive key * Adding case insensitive keys * Adding CTF Logo * Reducing the amount of team information shown on the main page * Add better base64 helpers * Switch from button to badge * Rudimentary solve checking from admin panel * Refine admin chals solves view & fix PEP8 * Compare base64 encoded data with bytestring * Removing need to urlencode/urldecode in base64 wrappers * Adding decorator documentation * Randomly order tests & add test for case_insensitive flags * Add regex flag case_insensitive test * Add tests for /admin/chal/1/solves and ctf_logo |
||
---|---|---|
.github | ||
CTFd | ||
migrations | ||
scripts | ||
tests | ||
.dockerignore | ||
.flaskenv | ||
.gitignore | ||
.travis.yml | ||
CHANGELOG.md | ||
Dockerfile | ||
LICENSE | ||
README.md | ||
Vagrantfile | ||
development.txt | ||
docker-compose.yml | ||
docker-entrypoint.sh | ||
export.py | ||
import.py | ||
manage.py | ||
populate.py | ||
prepare.sh | ||
requirements.txt | ||
serve.py | ||
setup.cfg | ||
wsgi.py |
README.md
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.
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
- Run
./prepare.sh
to install dependencies using apt. - Modify CTFd/config.py to your liking.
- 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
Support
To get basic support, you can join the CTFd Slack Community:
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
- Logo by Laura Barbera
- Theme by Christopher Thompson