Post

DOWN BAD

đť„ž Introduction

Intro

đť„ž Solution

Pour résoudre ce défi de forensic, j’ai commencé par analyser l’image.
Lorsque nous essayons d’ouvrir l’image, une erreur apparaît :

Erreur

Analysis

L’analyse de l’image révèle plusieurs points :

  • La taille de l’image peut sembler Ă©trange, 1920x1168, alors qu’on observe gĂ©nĂ©ralement des tailles plus courantes telles que 1920x1080 ou 1920x1200.
  • Le type MIME indique qu’il s’agit d’un PNG, donc la signature du PNG est prĂ©sente au dĂ©but du fichier. Cependant, dans les mĂ©tadonnĂ©es, Il y a des rĂ©fĂ©rences au mot PDF, ce qui pourrait ĂŞtre une piste.
  • En utilisant l’outil pngcheck, nous dĂ©tectons une erreur CRC dans le chunk IHDR de l’image, nĂ©cessitant ainsi une correction de notre part.

đť„žđť„ž Correction du CRC dans le chunck IHDR

Pour cela, nous allons modifier l’image en examinant son contenu en hexadécimal. L’outil pngcheck nous a donné le CRC incorrect, qui est 0xa9d545b.

Hex

Nous trouvons le CRC incorrect dans le chunk IHDR, et nous allons le remplacer par la valeur correcte donnée par pngcheck, qui est 0x1d9c52c0.

𝄞𝄞 Analyse de l’image

Après la correction du CRC, nous obtenons cette image :

CRC

On remarque que l’image semble tronquée, ce qui explique sa dimension de 1920x1168. Nous allons donc essayer d’augmenter la hauteur de l’image.
J’ai commencé par essayer 1920x1200 : Pour cela, je vais modifier la partie correspondant à la hauteur dans le chunk IHDR.

Taille

En bleu, nous avons la représentation de la largeur de l’image, qui est 1920 en décimal (0x780 en hexadécimal), et la valeur de la hauteur, qui est 1168 en décimal (0x490 en hexadécimal). Maintenant, pour modifier la hauteur de l’image, je vais remplacer la valeur hexadécimale correspondante (0x490) par celle de 1200, qui est 0x4B0.

Une fois modifiée, en essayant d’ouvrir notre nouvelle image :

CRC_2

Nous obtenons une erreur de CRC, ce qui est tout à fait normal, car nous avons modifié les données de l’image. Cependant, nous pouvons quand même vérifier si notre changement a fonctionné en vérifiant la hauteur de notre image.

Hauteur

Le CRC est un algorithme de vérification d’intégrité utilisé pour détecter les erreurs de données lors de leur transmission. Lorsque vous modifiez les données d’une image, y compris sa taille, le contenu des pixels change, et donc les données de l’image sont différentes. Le CRC est calculé à partir des données brutes de l’image, donc même un petit changement dans les données entraînera un CRC différent. Pour maintenir un CRC valide après avoir modifié la taille d’une image, vous devez recalculer le CRC en utilisant l’algorithme de CRC adapté aux nouvelles données. Cela implique généralement de recalculer le CRC sur l’ensemble des données de l’image après qu’elle ait été modifiée.

𝄞𝄞 Calculez le CRC de l’image.

Pour simplifier notre tâche, j’ai utilisé unoutil qui permet de recalculer facilement le CRC après modification.

Solve

L’image avec ces nouvelles dimensions ne nous donne rien, alors j’ai essayé de viser plus grand en prenant une hauteur de 2100, soit 0x834 en hexadécimal, et j’ai recalculé le CRC. Bingo !

Flag

đť„ž FLAG : TFCCTF{28ae25c96850245ffdd70a880158f9f3} đť„ž

đť„ž Conclusion

En concluant, ce défi de forensic nous a présenté plusieurs obstacles, notamment la correction du CRC et l’ajustement de la hauteur de l’image. Grâce à une analyse minutieuse et à l’utilisation d’outils adaptés, nous avons pu résoudre le défi avec succès.

This post is licensed under CC BY 4.0 by the author.