Skip to content

Challenges Info

tkaixiang edited this page Nov 26, 2021 · 12 revisions

Challenges can be created/edited/managed via the Admin Panel's Challenges Tab. (/Admin/Challenges)

General Notes 📓

  • All existing transaction records will be updated with the new score on edit of a challenge's score.
  • Challenges are all referenced by their challenge IDs
  • You can see a full preview of how the challenge modal looks like by clicking on the Preview button at the bottom of the create/edit challenge page

Creating/Editing a Challenge 🔧

Challenge Category 📃

Specify the challenge category this challenge will be in. You can either Select an existing category or enter a new category

Tags 🏷️

Specify any number of tags represent this challenge (E.g RE, Forensics)

  • The 1st tag is taken as the main tag. When the user sorts by tags in the challenges page, this tag is used

Flags 🎏

Enter any number of flags that are accepted for this challenge

  • If you revoke a flag, any existing solves for that flag are not revoked

Hints ❓

Enter any number of hints and their respective costs. Hints from top to bottom are hints 1-n respectively

  • If you revoke a hint, any existing purchases for that hint are not refunded

Challenge Description ℹ️

Challenge description. You can see a preview right below the editor

  • Supports Markdown, HTML and Code blocks with syntax highlighting
Simply type the following in the editor:
```<language>
```

E.g
```python
print("hello world")
```

Visibility 👁️

Controls whether the challenge is hidden/shown to users (Type 0 type 1 users)

  • Admin users (type 2) can still view and purchase hints on hidden challenges in the Challenges page
  • Challenges which are hidden have a Hidden Challenge text below them in the Challenges page.
  • Hidden challenges do not accept any solves even from admins. Admins will get an Unknown Error on trying to solve a hidden challenge.

Challenge Required 🔒

Locks this challenge until the specified challenge has been created.

  • The challenge is referenced by challenge ID. Hence it will still point to the correct challenge even if the required challenge name changes
  • If the required challenge is deleted, the link will be broken and users will encounter errors 😢

Writeup Link 🔗

Enter a link to a writeup if you want to provide them to the user.

  • There is also the option of only revealing the link after the user has solved the challenge.

Dynamic Scoring 💯

You can opt to enable dynamic scoring for a challenge by enabling the Dynamic Scoring option in the create/edit challenge page.

  • Solves to Minimum is the number of solves till the challenge decays to the minimum score
  • Minimum Points is the minimum points a challenge can decay to
  • Initial Points is the initial amount of points of a challenge before any decay

Dynamic scoring is implemented based on ctfd's parabolic decay formula here.

If you choose this option, the Challenge Points field value will be disabled and disregarded. It will be calculated based on the current no. of solves and the dynamic scoring parameters you entered for this challenge on edit/creation. You can see the edited score in the Table afterwards.

Deleting Challenges 🗑️

You can delete any numbers of challenges at once via the table editor

  • Any hints purchased are refunded
  • Any points gained from flags submitted are also removed
  • Any transaction records for that challenge are deleted

Managing Categories 📃

Category Visibility Management 👁️

You can "set the visibility of a category" via the Category Management section.

  • In V1.1, the visibility of challenges are retained even if you set the visibility of a category. A visible challenge inside a hidden category still cannot be viewed

Category Meta Information Editor ℹ️

You can edit various information for each category by seleting the dropdown:

  • Name
  • Category Image
  • Category Competition Time
    • This option locks the category and any challenges in it until the start time
    • After the end time, any new submissions for that category are rejected.
    • Challenges are no longer hidden after the end time

Various settings 🔧

Disable Submissions 🚫

Disables any new submissions to all categories and challenges. Even for admins. Use this to stop people from submitting after your CTF has ended

  • Hints can still be purchased

Set Socket Limit 🔢

Sets the maximum number of sockets(tabs) that can be connected to the live scoreboard per account. This is to help prevent people from hogging up all the sockets for the live scoreboard, especially for large CTFs.

  • If an account hits the limit set, they will get a friendly warning message and the earliest connected socket of that account will get disconnected.