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.