Français [EasyCTF 2017] [FORENSICS 325 – Decomphose] Write Up

Plusieurs fichiers 7zip contenant des images étaient mis à disposition, il fallait retrouver le flag dans ce marmiton.

Nous nous retrouvons avec 84 images png réparties dans des archives.
Du gris, du noir, des parasites, un beau bazar.
En regardant de plus près, on se rend compte qu’il y a beaucoup de pixels noirs parmi les parasites dont une bonne partie entourant des pixels de couleur.


Mais ?! Et si nous prenions chaque pixel entouré de points noirs de chaque image pour en faire une nouvelle composition ?

Un petit script PHP pour réassembler tout ça de manière performante :

<?php
 $files = glob('decomp?/*.png');
 $out = imagecreatetruecolor(1280,720);
 $back = imagecolorallocate($out, 0xff, 0xff, 0xff);
 $black = imagecolorallocate($out, 0, 0, 0);
 $white = imagecolorallocate($out, 0xff, 0xff, 0xff);


 foreach ($files as $file) {
  $img = imagecreatefrompng($file);
  $maxw = imagesx($img);
  $maxh = imagesy($img);

  for ($y=0;$y<$maxh;++$y) {
   for ($x=0;$x<$maxw;++$x){
    $color = imagecolorat($img, $x, $y); // Couleur du pixel de l'image courant
    if ($x+2 >= $maxw) continue; // On prend pas les pixels trop près du bord
    $color2 = imagecolorat($img, $x+2, $y); // On prend la couleur du pixel 2px plus loin
    if ($color == 0 && $color2 == 0) { // Si le pixel est noir
     $color3 = imagecolorat($img, $x+1, $y); // On prend la couleur du pixel 1px plus loin
     $r = ($color3 >> 16) & 0xFF;
     $g = ($color3 >> 8) & 0xFF;
     $b = $color3 & 0xFF;
     $new = imagecolorallocate($out, $r, $g, $b);
     imagesetpixel($out, $x, $y, $new);
     imagecolordeallocate($out, $new);
     $x += 2;
    }
   }
  }

  imagedestroy($img);
 }

 imagepng($out, 'flag.png');

C’est PRESQUE bon, le flag n’est pas encore tout à fait visible :

 

Un filtre anti-parasite avec GIMP et le flag apparait :

Le flag était : easyctf{wh4t_a_5weet_fFLag_2b04e1}

Une réflexion sur « [EasyCTF 2017] [FORENSICS 325 – Decomphose] Write Up »

  1. Bonjour
    je veux savoir si vous pouvez m’enseigner le ethical hacking je suis très motivé et passionné par ce domain .
    j’effectue un stage d’audit de vulnérabilités dans un startup au MAROC
    En espérant que ma demande sera acceptée, je vous prie de croire, Madame/Monsieur, à mes sincères salutations.
    Merci

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *