All Projects → CTFd → DynamicValueChallenge

CTFd / DynamicValueChallenge

Licence: other
CTFd Challenge Type which decreases its value after every solve

Programming Languages

HTML
75241 projects
python
139335 projects - #7 most used programming language
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to DynamicValueChallenge

Ctfd
CTFs as you need them
Stars: ✭ 3,768 (+22064.71%)
Mutual labels:  ctfd
juice-shop-ctf
Capture-the-Flag (CTF) environment setup tools for OWASP Juice Shop supporting CTFd, FBCTF and RootTheBox
Stars: ✭ 287 (+1588.24%)
Mutual labels:  ctfd
YuktiCTF
A Game platform to spread awareness among school and university students about various cyber attacks.
Stars: ✭ 11 (-35.29%)
Mutual labels:  ctfd
ctfd-neon-theme
No description or website provided.
Stars: ✭ 33 (+94.12%)
Mutual labels:  ctfd
haaukins
A Highly Accessible and Automated Virtualization Platform for Security Education
Stars: ✭ 148 (+770.59%)
Mutual labels:  ctfd

Dynamic Value Challenges for CTFd

NOTE: This plugin has been integrated into CTFd as of 2.0.0. Please file any issues at the main CTFd repo

It's becoming commonplace in CTF to see challenges whose point values decrease after each solve.

This CTFd plugin creates a dynamic challenge type which implements this behavior. Each dynamic challenge starts with an initial point value and then each solve will decrease the value of the challenge until a minimum point value.

By reducing the value of the challenge on each solve, all users who have previously solved the challenge will have lowered scores. Thus an easier and more solved challenge will naturally have a lower point value than a harder and less solved challenge.

Within CTFd you are free to mix and match regular and dynamic challenges.

The current implementation requires the challenge to keep track of three values:

  • Initial - The original point valuation
  • Decay - The amount of solves before the challenge will be at the minimum
  • Minimum - The lowest possible point valuation

The value decay logic is implemented with the following math:

or in pseudo code:

value = (((minimum - initial)/(decay**2)) * (solve_count**2)) + initial
value = math.ceil(value)

If the number generated is lower than the minimum, the minimum is chosen instead.

A parabolic function is chosen instead of an exponential or logarithmic decay function so that higher valued challenges have a slower drop from their initial value.

Installation

REQUIRES: CTFd >= v1.2.0

  1. Clone this repository to CTFd/plugins. It is important that the folder is named DynamicValueChallenge so CTFd can serve the files in the assets directory.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].