DOWN BAD
đ Introduction
đ 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 :
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.
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 :
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.
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 :
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.
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.
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 : 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.