Différences entre les versions de « /Cyber/chall/FCSC2023 »

De InfoXelec
Aller à la navigation Aller à la recherche
(Page créée avec « =Pré challenge= En regardant le code source du site, on voit un commentaire disant qu'il y a un challenge l'adresse /teasing.<br> ==teaser.png== Il y a une première image que l'on va découper en 5x11 avec le script decoupe.py.<br> On va assembler tous les morceaux avec Inkscape.<br> Dès que c'est assemblé, on copie colle l'image dans GIMP afin de l'exporter en teaser_assemble.png.<br> On va lancer une analyse de l'image avec SteSolve.jar<br> Lorsque l'on parcour... »)
 
 
Ligne 25 : Ligne 25 :
On voit un printf qui retournera le flag qui provient d'une variable.<br>
On voit un printf qui retournera le flag qui provient d'une variable.<br>
On va dumper avec <code>objdump -d -M intel puzzle2.bin</code><br>
On va dumper avec <code>objdump -d -M intel puzzle2.bin</code><br>
===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.<br>
Ceci nous mène à la fonction permettant de le valider.<br>
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.

Version actuelle datée du 19 avril 2023 à 15:01

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.