Authoring Challenges
Creating a Challenge
- From an organizer account, go to
Manage > Challenges
page (/admin/manage/challenges
).
- Click on
Add Challenge
button.
This will open a quick challenge creator. For basic challenges, you can use this editor to create the challenge.
For more advanced challenges, you can click on Switch to Advanced Editor
button to open the advanced challenge creator.
You can also open the advanced challenge creator by going directly to the /admin/manage/challenges/create
page.
Flags & Points
Arena supports adding multiple flags to a challenge, and each flag can have a different point value. Each of the added flags can be submitted by the participant, and the total points for the challenge will be the sum of the points of all the individual flags. To publish a challenge, you will need to atleast add 1 flag.
A flag can be a plain text, a regular expression, or otherwise a generated unique flag. Arena also supports adding an explanation text for each flag, which will be shown to the participant when they submit the flag.
Read more about flags here.
To add a flag,
- Go to the
Flags
tab. - Click on the
Add Flag
button, in theFlags
section. - Choose the flag type from the
Type
dropdown. You can choose fromPlain Text
,Regex
, andUnique Flag
. - Based on the type selected,
- for plain text - enter the flag value in the
Value
field - for regex - enter the regular expression in the
Regex Pattern
field - for unique flag - enter the environment variable in the
Environment Variable
field
- for plain text - enter the flag value in the
- Enter the points for the flag in the
Points
field. - If you want to add an explanation for the flag, click on
Advanced Options
, and enter it in theExplanation
field. - You can add multiple flags by repeating the above steps (2 to 6).
Hints & Costs
Arena supports adding Hints to challenges, which can be used by participants to get hints on how to solve the challenge. These hints can optionally have a cost i.e. in points deducted from the participant's score, if they use the hint.
You can read more about hints here.
Files as Attachments
You can read more about attachments here.
Configuring Deployments
If your challenge needs a web application, such as if it's a web application or a pwn (network, binary) based challenge,
you can configure the challenge deployment in the Deployment
tab.
Arena currently supports deploying Docker based applications only. You might want to check out this guide on setting up docker challenges.
Following the guide, you will be able to get a docker
image for your challenge, which you can use to configure the challenge deployment.
To do this,
- Go to the
Deployment
tab and click onAdd Service
button in theDocker Services
section. - Enter (paste) the docker image url of your challenge in the
Image URL
field. - Enter the port on which your challenge application is running in the
Port
field. - Enter some name for your application, and keep the
Expose Service
toggle on. - Click on the
Save
button.
Pull Secrets
If you have a private Docker image (such as via GitHub Packages, ECR etc.), then you need to provide a Image Pull Secret
to Arena,
so that the platform can pull the image from the private registry, and deploy it. You will find instructions on how to do this in the
setting up docker challenges guide.
You can read more about various deployment models supported by Arena here.