GCTF23{...}
The challenge file structure is fixed and is as follows:
challenge_name/
├─ dist/
│ ├─ file_to_give_to_participants
├─ service/
│ ├─ container-name/
│ │ ├─ Dockerfile
├─ chall.yaml
├─ README.md
The dist
directory is for specifying files that should be given to participants, and the service
directory is for files to be run in a docker container if the challenge needs to be hosted.
The chall.yaml
file is a special configuration file that contains information about the challenge. You can either use CTF-Architect to generate this file, or manually create it. The README.md
is auto-generated by CTF-Architect, and is also used to provide information about the challenge.
- CTF-Architect is a tool that currently supports the creation & templating of challenges created for the Gryphons CTF.
- Do note that this tool is still in development, and may not be fully functional. If you encounter any issues, please contact the Gryphons team for assistance.
- Stable release: v0.1.0a3
You can find the ctf_config.yaml file here
# Linux and MacOS
python3 -m pip install ctf-architect==0.1.0a3
# Windows
py -3 -m pip install ctf-architect==0.1.0a3
NOTE: If the command above fails, try running it in an administrator shell. If it still fails, please contact Gryphons support for assistance.
ctf-architect --help
chall-architect --help
chall-architect
- If everything goes well, your challenge should be packaged & templated nicely in the folder specified.
- You can now zip the folder and submit it in the google form provided. (Please ensure that it is a .zip file, and not a .rar, .7z, etc.)
- If you are unable to use CTF-Architect, you may manually submit your challenge.
- Please follow the template provided in the templates directory.
- Do note that minor errors in the template may result in the challenge breaking, in such cases we may contact you for clarification, examples of working challenges can be found in the examples directory.
- examples
- Contains challenge documentation examples for OSINT, Static & Hosted Web Challenges
- templates
- Contains the challenge submission templates challenge submission, please follow the template.
- Failure to follow the template will most likely result in the rejection of your challenge, however you may be contacted for clarification if necessary.
- Any questions or concerns can be directed to the #ticket-support channel on the Gryphons Discord Server
- Q: What do I do if I don't know how to write a
Dockerfile
for web challenges?- A: The preferred method is to refer to provided Dockerfiles in the examples directory. If you are still having trouble, please contact the Gryphons team for assistance.
- Q: How do I submit a pwn/re challenge?
- A: As the architecture & infrastructure is yet to be confirmed, pwn & re challenges will be compiled by the Gryphons team. Please ensure that the compiler flags & specific compilation instructions are provided in the challenge documentation.
- e.g
gcc -o challenge challenge.c -fno-stack-protector -z execstack -no-pie
- Challenges that include a pre-compiled binary are expected to have source code provided, and will be recompiled by the Gryphons team.
- A sample Dockerfile for a standard ret2win challenge can be found here: Dockerfile
- Q: My challenge has custom/non-standard hosting requirements, what do I do?
- A: Please contact the Gryphons team for assistance, we will try our best to accommodate your requirements.