Aperi’CTF 2019 - I need a new track now
Détails du challenge
| Event | Challenge | Category | Points | Solves |
|---|---|---|---|---|
| Aperi’CTF 2019 | I need a new track now | Stéganographie | 175 | 1 |
Votre ami audiophile vous a laissé un message dans une de ses compositions. Sauriez-vous le retrouver ?
Challenge : I_Need_A_New_Track_Now.wav - md5sum : f2511ab63365e24b94ef0c575cdbfdca
TL;DR
Nous avons lu la spécification WAV, repéré le bloc « DataSize » dans les attributs du header, augmenté sa valeur, écouté la fin du fichier wav et obtenu le flag.
Méthodologie
RTFM
J’ai ouvert le fichier avec Audacity et commencé quelques recherches. Voici la courbe du fichier original :

Après avoir testé les techniques les plus connues, nous avons fait une pause et nous nous sommes concentrés sur le nom du challenge : « I need a new track now ». Cela pourrait signifier que nous devrions passer à une autre piste. Peut-être s’agit-il de la piste « après » celle que nous avons obtenue ? Peut-être devrions-nous étendre la piste ? J’ai décidé de jeter un œil au format de fichier WAF (RIFF) :

J’ai vu la ligne DataSize qui définit le nombre de blocs composant le son. Augmentons cette valeur (notez que la valeur est codée en little endian sur 4 octets). Le DataSize est placé juste après la constante « data ».
J’ai ouvert le fichier avec hexed.it (vous pouvez utiliser n’importe quel éditeur hexadécimal) et augmenté la valeur de DataSize de F4 08 DA 00 à F4 08 DA 01 :

Appuyez sur Ctrl+S et ouvrez le fichier modifié avec votre logiciel d’écoute favori. Voici le fichier édité : I_Need_A_New_Track_Now_fixed.wav - md5sum : cfb718065465a44b794b369904dfeb19

Ici, nous pouvons écouter la fin du fichier, autrement dit « the new track », et obtenir le flag :
Bravo, le flag est APRK{R351Z3_M3}, le tout en majuscule.
Flag
APRK{R351Z3_M3}