CTF / WriteUp

WriteUp TJCTF 2018 – PIT or MISS

 

Ce challenge était disponible lors du TJCTF 2018.

Catégorie: Steganographie

Points: 80 pts

Enoncé: My friend sent me this image and told me that “red is an indicator”. I’m not really sure what he was saying but I don’t think it has anything to do with chemistry…

Edit: Please submit the md5 hash of the entire flag (including tjctf{}) instead of actually submitting the flag.

Fichier:

Le titre parle de lui même, il semblerait que la technique utilisée soit Pixel Indicator Technique. ( Document sur cette technique )

Une chance que j’ai résolu celui de root-me quelques heures avant de m’attaquer à celui-là \o/

Pour la résolution de ce challenge je me suis appuyé sur le script (et les conseils) de Zeecka de la team AperiKube (merci 😉 ).

La particularité du challenge:

Contrairement à la technique habituelle de PIT, ici les premiers octets ne sont pas utilisés pour prédire la taille du message caché !

Il nous faut donc deviner les paramètres suivants:

  • La taille du message à récupérer
  • L’Indicator Channel pour en déduire:
    • C1
    • C2

Indicator Channel:

  • 00 = 0 = Red
  • 01 = 1 = Green
  • 10 = 2 = Blue
  • 11 = 3 = Alpha (peu utilisé pour les challenges)

Grâce à l’énoncé du challenge on comprend toutefois que l’Indicator Channel sera rouge ! Soit IC =0.

En partant de ce postulat, on peut déterminer les deux channel à utiliser en faisant un peu de Fuzz dessus.

Enfin, on cherche la chaîne de caractères “tjctf” dans le résultat du script, et on adapte la taille pour avoir le pattern suivant: tjctf{<hexadécimal>}.

Voici le passage du script modifié:

 

Bon une fois fait, bingo ! Je trouve bien “tjctf{<hex>” mais impossible de trouver l’accolade fermante ! Elle se cache la fourbe ! (screen à l’appui)

Aïe Aïe Aïe …

Après de longues recherches (alors que, oui, le flag était sous mes yeux depuis 2 heures), je tente une commande simple mais efficace:

python try.py > file.txt ; cat file.txt

et miracle !

Voilà l’accolade fermante !

N’oublions pas l’Edit du challenge “Please submit the md5 hash of the entire flag (including tjctf{}) instead of actually submitting the flag.”

Roger That !

pre-flag: tjctf{C08DCB7AAFF28B0386D5FD47AD70162328B73B6419377F714BE8851CE99309F0E1BD679CB0FEF647DDA1E585E8EA63

DAF01C43

[……]

781CC2F4816EED4E5C322EC9FC4F02C659A1A457B0B52E90CE1C44A7C5955F3F14A5FFA60867072240BCE8403CBC80B502FD8B6

80C1FEDDEF5ACC6ADDABF710D457418DF9CD4542B9562626D8D91358CD781504A515AB13D77C02D3B79927B41176D4693AA18C

0225BA161947F670D21331A615FA1E6BC5272A57DD7264BE7F3C379ED2B49E95F86E04705AC607C26178FCEC180C9447C90D56B6

A63D10A56FC1847}

 

md5(pre-flag) = Flag: 0cb362c9e55058e6ad6f8a44775e332d

 

La bise.

Auteur

Sicarius
Étudiant @ENSIBS et apprenti ingénieur en cybersécurité chez GIE CBP

Laisser un commentaire

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