Présentation d’un write-up de résolution du challenge « Misc – Flag In Hell » de la BreizhCTF 2018.
Durant la nuit du 20/04/2018 se déroulait la BreizhCTF 2018 sous forme d’un CTF Jeopardy. Ayant eu l’occasion et le temps d’y participer avec quelques collègues et amis, voici un write-up de résolution d’un des challenges.
- Catégorie : Misc
- Nom : Flag In Hell
- Description : BreizhCtf meet strange peoples sometime…
- File : chall
- Points : 75
tl;dr; : Reconstruire un PNG à partir de données binaires inversées, et éditer la hauteur de l’image pour faire apparaître le flag.
Ce challenge se constituait d’un simple fichier de données binaires :
root@kalixen:/tmp/breizhctf# file FlagInHell FlagInHell: data
En regardant son contenu, et notamment la toute fin du fichier, on observe comme quelque chose de « familier » :
Le « GNP » final rappelle fortement le trigramme « PNG »… Serait-ce le contenu d’une image PNG inversée ?
Retournons l’ensemble des bytes :
root@kalixen:/tmp/breizhctf# < FlagInHell xxd -p -c1 | tac | xxd -p -r > FlagInHell.png
Le PNG semble valide !
Après divers tests d’analyse stéganographiques (RGBA, lsb, etc.), rien de concluant…
L’image semble assez volumineuse (3,48Mo) et en supprimant la fin du fichier celle-ci s’avère toujours valide : y aurait-il des données se trouvant en fin de fichier ? La taille de l’image aurait-elle été modifiée camouflant la fin de celle-ci ?
Dégainons « TweakPNG » et testons cela :
Bingo !
Flag :
bzhctf{h3llf35t_rul3z}
Chapeau à Estelle, Martin, Charles et Timothée pour celui-ci ?
Merci à toute l’équipe de la BreizhCTF pour l’organisation et la qualité des challenges !
Salutations à toute l’équipe, on remet ça quand vous voulez ? // Gr3etZ