Code Monkey home page Code Monkey logo

breizhctf-2023's Introduction

Breizh CTF 2023

Logo

Scoreboard

Pool (par ordre alphabétique)

Challenges

Les différents challenges sont stockés dans le dossier challenges/. Ces derniers sont répartis par catégories (un dossier par catégorie).

Architecture d'un challenge

Les challenges doivent respecter une architecture comme définie dans le dossier challenges/_exemple.

challenge.yml

Le fichier challenge.yml suit la convention défini par ctfcli utilisé pour le déploiement automatique de challenge.

Exemple de fichier challenge.yml.

solve.py

Lorsque cela est possible, implémentez un script de résolution du challenge. Ce dernier peut notamment contenir de assertions pour aider les organisateurs en cas de troubleshot.

Note : après validations croisées des challenges, il est possible de multiplier les scripts, avec par exemple, solve_pseudo.py.

Build

Dans la plupart des cas, les challenges pourront tourner dans des conteneurs. Dans ce cas un fichier Dockerfile doit obligatoirement être à la racine du projet. La pipeline est configurée pour automatiquement build les images docker.

Lorsque cela est possible, le dossier Build doit contenir les sources nécessaires à la génération du challenge. Le script de build doit pouvoir faciliter la génération du challenge avec un nouveau Flag.

WriteUp

Dossier contenant un Write-Up du challenge au format Markdown. Les captures d'écrans et fichiers peuvent être stocker à même le dossier ou dans des sous-dossiers au bon vouloir de l'auteur.

Note : après validations croisées des challenges, il est possible de multiplier les WriteUp, avec par exemple, le dossier WriteUp_pseudo.

Files

Dossier contenant le(s) fichier(s) fournis dans le challenge. L'ajout du md5sum des fichiers dans la description du challenge est recommandé.

Pensez aussi à rajouter vos fichier dans le challenge.yml pour qu'ils soient automatiquement envoyés sur CTFd

Docker

Dossier contenant le Dockerfile du challenge ainsi que les fichiers du service (voir section Docker).

Points

Les points attribués aux challenges sont dynamiques (500 pts dégressifs), mais un niveau de difficulté (Très Facile, Facile, Moyen, Difficile, Très Difficile) doit être attribué pour chaque challenge afin d'orienter les joueurs.

Docker

Afin d'homogénéiser les images Docker, plusieurs modeles d'image sont à votre disposition dans le dossier docker. L'objectif du dossier docker n'est pas de copier son contenu, mais de l'utiliser comme image de base.

Le dossier contient 3 images de base :

  • tcp qui est une image alpine avec socat préconfiguré sur le port 1337. Le programme lancé par socat doit se trouver dans /challenge/challenge dans le conteneur. Vous trouverez un exemple d'utilisation dans le dossier _exemple_tcp
  • web qui est une image alpine avec apache2+php8 d'installé. La racine du serveur web se trouve dans le dossier /challenge du conteneur. Vous trouverez un exemple d'utilisation dans le dossier _exemple_web
  • python qui est une simple image avec python3 installé. Le programme par défaut doit se trouver dans le dossier /challenge/challenge.py du conteneur

Le port par défaut à utiliser pour les services sont :

  • 80 pour HTTP
  • 1337 pour TCP

Links

breizhctf-2023's People

Contributors

kaluche avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.