/Cyber/chall/FCSC2023

De InfoXelec
Aller à la navigation Aller à la recherche

Pré challenge

En regardant le code source du site, on voit un commentaire disant qu'il y a un challenge l'adresse /teasing.

teaser.png

Il y a une première image que l'on va découper en 5x11 avec le script decoupe.py.
On va assembler tous les morceaux avec Inkscape.
Dès que c'est assemblé, on copie colle l'image dans GIMP afin de l'exporter en teaser_assemble.png.
On va lancer une analyse de l'image avec SteSolve.jar
Lorsque l'on parcours les frames, on voit qu'il y a quelque chose sur toutes les couches 0.
Dans analyse - Data Extract, sélectionner les bits 0 des couche R,V,B et cliquer sur Preview.
On voit que le Header du ficher est celui d'une image PNG.
Sélectionner les données utiles et cliquer sur exporter les données en cliquant sur Save Bin.

Seconde image

Il y a une première image que l'on va découper en 5x11 avec le script decoupe.py.
On va assembler tous les morceaux avec Inkscape.
Dès que c'est assemblé, on copie colle l'image dans GIMP afin de l'exporter en teaser_assemble.png.
On va lancer une analyse de l'image avec SteSolve.jar
Lorsque l'on parcours les frames, on voit qu'il y a quelque chose sur toutes les couches 0.
Dans analyze - Data Extract, sélectionner les bits 0 des couche R,V,B et cliquer sur Preview.
On voit dans le Header un exécutable ELF 64 bits Linux
Sélectionner les données utiles et cliquer sur exporter les données en cliquant sur Save Bin.

Analyse du binaire

On lance en premier un strings puzzle2.bin
On voit un printf qui retournera le flag qui provient d'une variable.
On va dumper avec objdump -d -M intel puzzle2.bin

Ghidra

Lorsque l'on charge le binaire dans Ghidra, on va dans les chaines de caractères et on trouve la phrase de validation du challenge.
Ceci nous mène à la fonction permettant de le valider.
A l'adresse 0x104060, on trouve un tableau de valeurs qui en binaire représente un labyrinthe. Le résultat du challenge sera donc les mouvements à effectuer pour sortir de ce labyrinthe.