CTFd v3.3.0
It's been a few months since the release of CTFd v3.2.0 and we just released v3.3.0 a few days ago! Hosted CTFd customers have already received the v3.3.0 update. Self hosted installations should update their Docker image or download the latest release from Github.
Here's some of the most important changes!
Team & User Combined Scoreboard
Under Teams mode, the CTFd Admin Panel will now show both the team scoreboard as well as the user scoreboard.
Add user to team UI
An interface in the Admin Panel to add a user to a team has been added to make it easier for admins to manually add users into a team.
Faster Scoreboard API endpoint
In 3.3.0 a faster implementation of /api/v1/scoreboard
was implemented for CTFs running in Teams Mode. Prior to this fix, CTFd was having the database iterate through every team trying to find teams with points.
This led to poor performance with certain large events, specifically when hitting the /api/v1/scoreboard
endpoint for scoreboard refreshing. In testing, the endpoint was sped up by a significant factor, generally between 20-30x!
# Old route
$ curl -o /dev/null -s -w 'Total: %{time_total}s\n' \
http://localhost:4000/api/v1/scoreboard
Total: 62.941061s
# New route
$ curl -o /dev/null -s -w 'Total: %{time_total}s\n' \
http://localhost/api/v1/scoreboard
Total: 2.181876s
Easier to access solves
The /api/v1/challenges
and /api/v1/challenges/[challenge_id]
endpoints have two new fields:
- A new
solves
key which specifies how many times a challenge has been solved - A new
solved_by_me
key which indicates whether the requesting user has solved a given challenge
Disable Public Team Creation
The ability to disable team creation and only allow for joining pre-existing teams has been added. Should be very useful for educational workshops and classroom environments!
Better graph colors
Graph coloring in the core theme and themes based off of it should now have brighter more vibrant colors. Fewer colors should be generated that are too light or too dark.
Theme Development Improvements
We know there are some difficulties with writing CTFd themes and we're working on it! For now a few changes have been provided by the community to make CTFd theme development a little bit easier.
Theme Fallback
There is now a THEME_FALLBACK
configuration in config.ini
that makes it easier to develop themes. THEME_FALLBACK
will configure CTFd to try to find missing theme files in the default built-in core
theme. This means that if enabled, you can use incomplete themes.
Theme Inheritance
Templates in a theme can now reference templates in another. For example by using {% extends "core/page.html" %}
, you can inherit from the core
theme's page.html
template and override specific template blocks.
The full change log can be be seen at the release page for v3.3.0.
You can also try out CTFd v3.3.0 on the Demo CTFd instance!
Hosted CTFd Updates
Now for a few updates about the Hosted CTFd infrastructure!
Webhooks
Webhooks allow an application to send a HTTP request to a server or application that you control when a certain action occurs.
For example, sending out an HTTP request when a new user registers. This could be used to bootstrap an environment or to send out more registration details to new users or just to be notified.
We've been working hard on an implementation for webhooks in Hosted CTFd instances! We're just about ready to release it in a beta form but we'd love for any interested customers to try it out ahead of the release!
Contact us if you're interested and let us know what you'd like to use CTFd webhooks for!
CTFd Store
The Hacker theme price has been dropped to $29. If you purchased the plugin within a month of the price decrease, feel free to reach out to us and we'd be happy to refund the difference!
The Learning theme has been updated to re-introduce functionality that had been accidentally reverted. Customers should have received emails with an updated download.
That's all for now! But stay tuned for some exciting news towards the end of the month!