Explorez les write-ups des challenges de l’année 2024
Vous trouverez ici une partie des solutions aux challenges cette édition, classées par catégorie.
Crypto - Collines et matrices
- Catégorie : Crypto
- Difficulté : Moyen
- Points : 95
Description
Jeanne d’Arc traverse les collines escarpées de la France médiévale, découvrant des runes gravées dans la pierre renfermant des secrets anciens.
Découverte du challenge
Le challenge consistait en un serveur distant qui permettait à n’importe qui s’y connectant de chiffrer des messages. Il s’agit donc d’un oracle de chiffrement. Lorsqu’on s’y connecte le serveur affiche le message suivant, puis nous propose de chiffrer un message :
Reverse - Clé enchantée
Le but de ce challenge n’est pas de trouver un mot de passe mais de générer un fichier
avec le nom correct pour que le programme vienne écrire le flag dedans. Le but n’est pas
de reverser la fonction write_flag. Le binaire est strippé pour rendre encore plus difficile
la compréhension de cette fonction. A l’inverse, un SRE comme Ghidra identifiera les appels
aux fonctions importées de la libc et les affichera correctement, même stripper.
Reverse - Intro
Ce premier challenge était une introduction aux techniques de rétro-ingénieurie. Le
programme était compilé avec les symbolss (noms des fonctions) et de manière
dynamique, on avait donc accès à facilement aux fonctions externes telles que strncmp.
Solution I - Statique
En ouvrant le binaire dans un logiciel de SRE comme Ghidra, on obtenait le pseudo-code suivant:
undefined8 main(int param_1,undefined8 *param_2)
{
int iVar1;
undefined8 uVar2;
if (param_1 == 2) {
iVar1 = check_password(param_2[1]);
if (iVar1 == 0) {
uVar2 = 0;
}
else {
puts("Wrong password");
uVar2 = 0xffffffd6;
}
}
else {
printf("Usage: %s <password>\n",*param_2);
uVar2 = 0xffffffd6;
}
return uVar2;
}
Le programme attend un paramètre passé par la ligne de commande, et le passe à la fonction
check_password. Cette fonction contient le code suivant:
Web - Réseau social Y - 1/3
- Catégorie : Web
- Difficulté : Moyen
- Points : 916
Premier challenge de la série sur Y, le nouveau réseau social.
Étape 1 : Connexion en tant qu’utilisateur
Premièrement, on arrive sur une page d’accueil avec plusieurs onglets, un formulaire de connexion, une page de profil et un espace d’administration.

On peut supposer que la première étape va être de se connecter. Cette première étape est très simple, en se rendant sur la page de connexion on peut trouver des identifiants oubliés dans les commentaires :
Web - Réseau social Y - 2/3
- Catégorie : Web
- Difficulté : Moyen
- Points : 995
La suite du premier challenge sur Y, le nouveau réseau social.
Étape 1 : JWT algorithm confusion
On part donc de la même application, avec le même menu de connexion, mais cette fois-ci un formulaire d’enregistrement est disponible. En créant un compte et se connectant on se rend compte que l’authentification se fait maintenant en utilisant des JWT (JSON Web Tokens).
Web - Réseau social Y - 3/3
- Catégorie : Web
- Difficulté : Difficile
- Points : 995
Le dernier challenge sur la plateforme Y, le nouveau réseau social.
Exploitation d’une SSTI (Server-Side Template Injection)
Cette fois, un compte administrateur est fourni pour avoir accès à toute la plateforme. Suite à un problème ce compte a été désactivé mais chaque nouveau compte créé était administrateur.

Après quelques recherches, on peut remarquer qu’il n’y a qu’une seule nouvelle fonctionnalité :
Windows - Seigneurs, Manoirs et Batailles
- Catégorie : Windows
- Difficulté : Moyen
- Points : 989
Description
Vous avez intercepté des communications des pigeons voyageurs ennemis. Essayez de déchiffrer cette série de communications et d’y retrouver le mot de passe de l’utilisateur sur cette machine Windows.
Fichier attaché : capture.pcap
Writeup
Le fichier fourni est une capture réseau PCAP. On peut l’ouvrir avec un logiciel comme Wireshark pour l’analyser. Le but est de retrouver le mot de passe d’un utilisateur Windows à partir de ce fichier.