CTF 2 : tout essayé...

Bonjour, Après avoir passé de longues heures à TOUT essayer (une bonne dizaine de tools et de techniques, dans leurs variations, en commençant par les plus courantes) (je sais c'est vague, mais j'essaie de ne pas spoil; les mp seraient + adaptés pour m'aider je pense), je demande un coup de pouce... J'ai vu sur un autre thread qu'on devait extraire autre chose qu'une image pour avoir le flag, mais ça ne m'aide pas trop, je ne limitais pas ma recherche aux images Merci d'avance, et bonne année !

Salut !

À titre indicatif, une image est un tableau à deux dimensions de pixels. Chaque pixel a la plupart du temps 3 composantes (rouge, vert, bleu), dont la valeur est encodée sur 8 bits par composante.

Si tu voulais cacher de l'information dans cette image, il te faudrait choisir un moyen qui fait perdre peu d'information visuelle.

Le mot clé qu'il te manque peut-être (?) est stéganographie. La technique ici utilisée est certainement la plus commune, et aussi probablement la plus facile à implémenter.

@+ !

31 déc. 2019 à 17:26:01 Modifié le 31 déc. 2019 à 18:37:08

Je suis déjà familier de la stéganographie. Si par "la technique la plus commune" vous vous référez à une technique en 3 lettres, j'ai essayé toutes ses variantes sans succès. Est-ce normal ? Edit : Petit fail dans l'implémentation....................... J'ai le flag, c'est bon :) merci de m'avoir confirmé dans ma piste

il faut que je revoie mon implémentation alors ?!

Heu c'est difficile à dire, y'a un certain nombre de mots de 3 lettres :D Mais c'est possible du coup.

2 jan. 2020 à 06:22:49 Modifié le 2 jan. 2020 à 12:20:27

Moi non plus je ne trouve pas trace de PROLOGIN ou NIGOLORP.

J'ai pourtant essayé la stéganographie LSB (Less Significant Bit) sur RVB, ou RBV, ou seulement les canaux Rouge ou Vert ou Bleu ou Colorimétrie ou Teinte ou Saturation... en lisant l'image par lignes ou par colonnes... en codant sur 7,8,16,32,64 bits... avec tous les décalages possibles... en inversant l'ordre... le programme a tourné la nuit mais rien à faire !

Deux trois indices:

-Le message n'est pas forcement encodé de droite à gauche, il peut l'être en diagonale, ou verticalement, ou en partant du coin en bas à droite.

-Le message n'est pas forcement encodé sur le LSB.

-Le message n'est pas forcement encodé sur les canaux R, G et B.

-La stéganographie, souvent, c'est ennuyant.

2 jan. 2020 à 17:20:27 Modifié le 3 jan. 2020 à 01:35:28

J'avais aussi essayé les "Two Less Significant Bits".

Maintenant si c'est codé sur n'importe quels bits et aussi en diagonal, tant qu'on y est pourquoi pas crypter sur 256 bits en plus de la sténographie ???

Ce n'est plus de la programmation et ça m'ennuie, effectivement.

4 jan. 2020 à 01:18:32 Modifié le 5 jan. 2020 à 17:26:05

Ca y est, trouvé, il me manquait un petit bouclage

1
2
 for x in range(0, width+1):
      x=x%width

C'était bien de la programmation.

Au passage merci neirpyc pour les fausses pistes non-RGB, bit-non-LSB, en-diagonale...

sssssssssssprit concours .

Je ne te lançais pas sur des fausses pistes, je te donnais des exemples de trucs à essayer. Et t'as eu le flag sur le LSB? Pas moi xD

Diagonale, ça faisait partie d'une liste de choses, avec vertical, horizontal etc. Je ne voulais pas juste te dire : "faut partir de tel pixel, dans tel sens, avec tels bits", ça aurait gâché le truc.

9 jan. 2020 à 18:12:14 Modifié le 9 jan. 2020 à 18:23:29

Et pourtant mon bout de code donne énormément d'indices :

  • sur le sens du codage (horizontal ou vertical)

  • sur la position dans la photo (sinon pourquoi il y aurait-il besoin d'un bouclage avec modulo ?)

J'ai aussi confirmé que c'est bien sur les bits LSB des 3 canaux RGB : ça retire beaucoup de possibilités.

Allez un dernier indice : c'est codé par tranche de 8 bits (0-255) bien que la table ascii n'utilise que 7 bits (0-127).

Mon programmes d'origine testait 2540 codages possibles mais j'avais oublié le bouclage.

Avec les infos que j'ai donné, il ne reste que 16 possibilités à tester (2 sens x 8 décalages) sur une zone très restreinte.

Personnellement, je trouve que ce sentiment de ne pas savoir ce qui va marcher, (et non pas de ne pas savoir faire marcher ce qui va résoudre le problème, comme dans un exercice classique) est l'essence même du CTF, et c'est pourquoi je n'en n'ai pas dit autant, et aussi clairement, que toi.

Répondre au sujet

Vous devez vous enregistrer ou vous connecter pour poster des messages.