2 min read

[CTF GEMA] Cool

CTF GEMA Groupe 2025

Niveau de Difficulté : Medium

Catégorie du Challenge : Forensic

Description :

L'oncle Roger a toujours été un peu... particulier. Il nous a laissé une photo de famille renfermant un message secret. Quelque part dans cette image, un mystère attend d'être percé. Parviendrez-vous à découvrir ce que l'oncle Roger a dissimulé pendant toutes ces années ?

Steps to Solve

  • Commençons par exiftool pour vérifier les métadonnées de l'image
┌──(kali㉿kali)-[~/Downloads]
└─$ exiftool Family.png
ExifTool Version Number         : 13.00
File Name                       : Family.png
Directory                       : .
File Size                       : 8.8 MB
File Modification Date/Time     : 2025:01:26 23:08:19+03:00
File Access Date/Time           : 2025:01:26 23:13:15+03:00
File Inode Change Date/Time     : 2025:01:26 23:08:19+03:00
File Permissions                : -rw-rw-r--
File Type                       : PNG
File Type Extension             : png
MIME Type                       : image/png
Image Width                     : 2000
Image Height                    : 2000
Bit Depth                       : 8
Color Type                      : RGB with Alpha
Compression                     : Deflate/Inflate
Filter                          : Adaptive
Interlace                       : Noninterlaced
Hint                            : Check the embedded gzip at the end!
Warning                         : [minor] Trailer data after PNG IEND chunk
Image Size                      : 2000x2000
Megapixels                      : 4.0
  • nous avons donc un fichier gzip intégré à l'image à la fin, nous pouvons donc l'extraire en utilisant binwalk (la dernière partie de zlib) ou manuellement (en utilisant hexdit et en ouvrant l'image puis en exportant la dernière partie de celle-ci)
┌──(kali㉿kali)-[~/Downloads]
└─$ binwalk -e Family.png

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
93            0x5D            Zlib compressed data, default compression
  • Nous ne pouvons toujours pas ouvrir le fichier d'archive, il semble corrompu, réparons-le, la première chose à vérifier est l'en-tête des octets magiques, s'ils sont corrects ou non (comme l'indique l'astuce, il s'agit d'un fichier gzip et avec un peu de recherche, nous avons trouvé qu'il était censé commencer par 1F 8B, alors réparons-le manuellement à l'aide d'hexdit, et changeons la méthode de compression en 08 car c'est le cas normal. assurez-vous de le renommer en .gz car il s'agit d'une archive gzip comme l'indique l'astuce

https://hexed.it/

Local Image
  • Nous avons toujours une corruption et comme nous pouvons le voir sur l'image ci-dessus, il s'agit de DEAD BEEF CRC, alors corrigeons cela en utilisant un code python ou simplement une commande
Local Image
┌──(kali㉿kali)-[~/Downloads]
└─$ mv Family_new.png  flag.gz
┌──(kali㉿kali)-[~/Downloads]
└─$ gunzip -c flag.gz > file.txt
┌──(kali㉿kali)-[~/Downloads]
└─$ cat file
Flag/flag.txt0000664000175000017500000000005314725132755012036 0ustar  kalikali Flag{a9Xj7Lm2Pq8Zb4Yr6Kd5Nh3Vc1Wt0GOpFsEl}
Flag/0000775000175000017500000000000014725132755010366 5ustar  kalikali  

Flag

Flag{a9Xj7Lm2Pq8Zb4Yr6Kd5Nh3Vc1Wt0GOpFsEl}