Squint

BreizhCTF 2023 - Stéganographie.

BreizhCTF 2023 - Squint

Challenge details

Event Challenge Category Points Solves
BreizhCTF 2023 Squint Stéganographie ??? ???

squint

Mieux vaut loucher que d’être aveugle.

Auteur: Zeecka

TL;DR

Le fichier fournit est un fichier PNG, et plus particulièrement image/apng, disposant de 2 frames. La deuxième frame dispose d’un délai nul, elle ne peut donc être visualisée qu’au travers d’outil d’éditions de fichier APNG comme apng-maker. La deuxième frame extraite semble dénuée de sens à première vue mais une recherche inversée sur l’image originale (première frame), ainsi que l’intitulé et la description du challenge nous dirige vers les autostéréogrammes. L’utilisation d’un solveur comme sur Stegsolve permet alors de faciliter la lecture du flag.

Méthodologie

Pour commencer, nous récupérons le fichier et vérifions qu’il n’a pas été altéré en calculant sa signature.

squint.png

$ md5sum squint.png

2c8a5ec04ddf7d0c2bd66112e7bf54f0

La commande file permet de vérifier si le type de fichier récupéré correspond à son extension.

$ file squint.png

squint.png: PNG image data, 800 x 1143, 8-bit grayscale, non-interlaced

Le fichier est donc une image au format PNG. L’outil exiftool peut nous permettre de récupérer les métadonnées du fichier.

$ exiftool squint.png

ExifTool Version Number         : 12.42
File Name                       : squint.png
Directory                       : .
File Size                       : 796 kB
File Modification Date/Time     : 2022:11:13 18:05:47+01:00
File Access Date/Time           : 2022:11:13 18:06:02+01:00
File Inode Change Date/Time     : 2022:11:13 18:05:55+01:00
File Permissions                : -rw-r--r--
File Type                       : APNG
File Type Extension             : png
MIME Type                       : image/apng
Image Width                     : 800
Image Height                    : 1143
Bit Depth                       : 8
Color Type                      : Grayscale
Compression                     : Deflate/Inflate
Filter                          : Adaptive
Interlace                       : Noninterlaced
Animation Frames                : 2
Animation Plays                 : inf
Image Size                      : 800x1143
Megapixels                      : 0.914

Aucun commentaire n’est présent, en revanche, on apprend ici que le type de fichier est APNG avec un MIME Type image/apng.

Une recherche sur internet sur le format de fichier APNG permet d’en apprendre plus sur ce dernier. Il s’agit d’un format d’image pouvant contenir plusieurs frames d’une durée variable, au même titre que le format GIF.

Afin de vérifier les différentes frames, nous allons utiliser un désassembleur APNG en ligne.

Disass APNG

L’extraction de la frame cachée (en inversant l’ordre et la durée des frames par exemple) permet de récupérer le fichier.

frame2.png

Le fichier est a priori illisible en l’état. Une recherche inversée de la première image (à l’aide de Google Lens ou Yandex par exemple) nous permet de retrouver la page Wikipédia de Béla Julesz.

Ce scientifique est connu pour son travail sur les stéréogrammes et particulièrement les autostéréogrammes. L’image extraite coincide avec les formes utilisées pour les autostéréogrammes disponibles sur internet.

L’utilisation d’un solveur d’autostéréogrammes comme celui de StegSolve nous permet alors de récupérer notre précieux Flag.

Stegsolve

Flag

BZHCTF{Motostereogram?}

Auteur: Zeecka