-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
898c19e
commit af714fa
Showing
1 changed file
with
32 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,38 @@ | ||
# CTFFramework | ||
|
||
BETA SOFTWARE. SUPPORT IS NOT PROVIDED AT THIS TIME. | ||
# CTFF - CTF Framework | ||
|
||
A Framework for building CTFs. | ||
|
||
## Contributions | ||
CTFF can be used to define Capture The Flag (CTF) challenges in a very minimal | ||
amount of code, and render an interface for competitors to view and attempt | ||
challenges. Building a mini web-interface seems to be a thing that we frequently | ||
do when building a CTF and this framework aims to reduce that effort to near-zero. | ||
|
||
This project is released under the MIT Licence. For more information, please see LICENSE. | ||
CTFF is built on top of [Flask](https://flask.palletsprojects.com/) and supplements it's functionality. | ||
All of the usual Flask features and functionality are still available. | ||
|
||
## CTF Structure | ||
|
||
The framework currently assumes that CTFs consist of a series of challenges, which are grouped | ||
together. The groups might be levels, or categories of challenges, the framework leaves it up to the author. | ||
|
||
Each challenge consists of a number of "parts", one of which will usually be a submission. A challenge can only have one submission pathway, but multiple solutions or inputs if desired. | ||
|
||
The CONTRIBUTORS file can be generated by executing CONTRIBUTORS.gen. This generated file contains a list of people who have contributed to CTFFramework. | ||
```python | ||
@challenge_group.challenge | ||
class MyChallenge(Challenge): | ||
title = "My Challenge" | ||
flag = "flag{ZzZzZzZ}" | ||
|
||
def __init__(self) -> None: | ||
self.parts = [ | ||
MarkdownPart("What lives in a hive and goes zzzz?"), | ||
TextSubmissionPart("example"), | ||
] | ||
|
||
def verify_submission(self) -> bool: | ||
return request.form["example"] == "bees" | ||
``` | ||
|
||
## Contributions | ||
|
||
This project is released under the MIT Licence. For more information, please see LICENSE. |