Skip to main content

Authoring Challenges

Creating a Challenge

  1. From an organizer account, go to Manage > Challenges page (/admin/manage/challenges).
  1. 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,

  1. Go to the Flags tab.
  2. Click on the Add Flag button, in the Flags section.
  3. Choose the flag type from the Type dropdown. You can choose from Plain Text, Regex, and Unique Flag.
  4. 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
  5. Enter the points for the flag in the Points field.
  6. If you want to add an explanation for the flag, click on Advanced Options, and enter it in the Explanation field.
  7. 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,

  1. Go to the Deployment tab and click on Add Service button in the Docker Services section.
  2. Enter (paste) the docker image url of your challenge in the Image URL field.
  3. Enter the port on which your challenge application is running in the Port field.
  4. Enter some name for your application, and keep the Expose Service toggle on.
  5. Click on the Save button.
note

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.

More Details