====== Enigmes de S4nch0 #1 ====== ===== Overview ===== Le challenge est constitué d'une image au format PNG. ===== First steps ==== Après avoir dézippé l'archive le terminal nous indique que le seul fichier obtenu, head.png, est executable. pat_le_panda@bt:~/stegano$ ls -l total 56 -rwxr-xr-x 1 pat_le_panda user 22571 2012-06-29 10:49 head.png -rw-r--r-- 1 pat_le_panda user 30720 2012-06-30 17:45 sancho1.tar pat_le_panda@bt:~/stegano$ ./head.png : command not found �PNG ./head.png: line 2: ▒: command not found ./head.png: line 3: syntax error near unexpected token `(' IHDR��.png: line 3: ` Í�d�IT pHYs��(�8�tEXtSoftwarewww.inkscape.org��<▒ IDATx��]wXT��~��{�"' pat_le_panda@bt:~/stegano$ Le fichier ne semble pas pouvoir lancer la moindre commande .... Il reste donc à l'ouvrir dans un éditeur d'image pour voir à quoi ressemble ce PNG : {{ http://imgur.com/68SFP.png }} L'image s'affiche parfaitement, il y a de grandes chances pour que le chmod du fichier ne soit qu'un piège. L'homme nous prévient : il va falloir se creuser la tête, qu'à cela ne tienne allons chercher une pioche ! ===== Analyse de l'image ==== Bidouiller le contraste, la saturation, appliquer des filtres de différentes couleurs ne donne aucun résulta0t. Après quelques temps, on remarque que le fond qui a première vue ne semble être que du bruit aléatoire est en fait la répétition du même motif : {{ http://imgur.com/exJH2.png?130x110 }} Si on omet les effets d'ombres et le contour approximatif ce dernier est en fait un damier de 8x6 de carrés blancs ou noirs. 8 c'est justement le nombre de bits utilisé pour coder un caractère en ASCII. Vient alors une idée ; chaque ligne pourrait représenter une lettre : un carré blanc constitue un 0, un noir un 1. Si on "lit" le motif avec cette règle on obtient : 01010011 = 0x53\\ 00110100 = 0x34\\ 01001110 = 0x4e\\ 01000011 = 0x43\\ 01001000 = 0x48\\ 00110000 = 0x30\\ Ce qui donne en ASCII : "S4NCH0". w00t ! c'est justement le nom de l'épreuve. On calcul le hash md5 de la chaine trouvée, md5("S4NCH0") = "975186cff0a2bfd07862175d40fa36ff". Le challenge est validé.