Bachelor thesis project for the BADM500 course (2025) at the University of Southern Denmark, Department of Mathematics and Computer Science.
The project explores Capture the Flag (CTF) challenges and how they can help educate people about subjects in computer science and cybersecurity.
The challenges were created for the CTF platform: https://github.com/KianBankeLarsen/CTF-Platform.
- challenge-xss: Cross site scripting (XSS) challenge.
- challenge-blog: Open-source intelligence (OSINT) challenge.
- challenge-mail: Phishing attack challenge.
- challenge-pwn: Pwn challenge.
- challenge-maze: Maze game challenge.
- template: Template challenge. Copy this when creating new challenges.
You need the following programs on your machine:
You can also get these by using the provided flake.nix file. Read more about flakes.
Download the VM file and copy it to the root folder of the project.
# list available recipes
just
# list available CTF challenges
just challenges
# run CTF challenge in QEMU
just run <challenge>
# run CTF challenge in development mode
just dev <challenge>
# run CTF challenge solution
just solution <challenge>The username and password for the VM are the following:
- Username: alpine
- Password: password
Exit the VM by pressing Ctrl-a followed by x.
If something fails, then the Python HTTP server might not shut down properly. You will need to kill the process yourself, which can be done like this:
# see processes
ps
# find the Python process and copy its PID
# kill the process
kill <pid>You can now try and rerun the CTF challenge.
Copy the template challenge to the challenges directory.
cp challenges/template challenges/<challenge>Start developing :D
This project was developed by the following group members:
- Esben Kylling Petersen
- Karsten Finderup Pedersen
- Tobias Samsøe Sørensen
- Yannick Gennadij Nustajev Mikkelsen
Thanks to our supervisor Jacopo Mauro.