Recette

Catégorie: Cryptanalyse - Difficulté: Intro

Description:

32 69 31 73 34 69 31 73 31 35 64 31 6f 34 39 69 31 6f 34 64 31 6f 33 69 31 6f 31 35 64 31 6f 32 32 64 31 6f 32 30 64 31 6f 31 39 69 31 6f 37 64 31 6f 35 64 31 6f 32 69 31 6f 35 35 69 31 6f 31 64 31 6f 31 39 64 31 6f 31 37 64 31 6f 31 38 64 31 6f 32 39 69 31 6f 31 32 69 31 6f 32 36 69 31 6f 38 64 31 6f 35 39 64 31 6f 32 37 69 31 6f 36 64 31 6f 31 37 69 31 6f 31 32 64 31 6f 37 64 31 6f 35 69 31 6f 31 64 31 6f 32 64 31 6f 31 32 69 31 6f 39 64 31 6f 32 36 64 31 6f

Solution:

Pour ce challenge, il suffit de suivre les étapes mentionnées dans la description du challenge.

Etape n°1 : Convertir l'hexa en caractères

Pour cette étape nous pouvons utiliser très simplement CyberChef qui nous donnera d'ailleurs la "fonction" à utiliser :

Nous récupérons donc ceci : 2i1s4i1s15d1o49i1o4d1o3i1o15d1o22d1o20d1o19i1o7d1o5d1o2i1o55i1o1d1o19d1o17d1o18d1o29i1o12i1o26i1o8d1o59d1o27i1o6d1o17i1o12d1o7d1o5i1o1d1o2d1o12i1o9d1o26d1o

Etape n°2 : Développer pour ne plus voir de chiffres

Cette étape est la plus "compliquée" car il faut comprendre le sens de l'instruction : "Développer de sorte à ne plus voir de chiffres". Pour ne plus voir les chiffres, nous serions tenté de les enlevés à la main dans un bloc note ou autre. Mais le terme "Développer" ici, signifie qu'il faut multiplier chaque lettre par le nombre qui le précède (Ex : 2*i = ii, 1*s = s, 4*i = iiii...). Pour faire cela rapidement et simplement nous pouvons utiliser un petit script qui le fait à notre place :

import re

def multiply_letters(text):
    result = ""
    pattern = r'(\d+)([a-zA-Z]+)'
    matches = re.findall(pattern, text)
    
    for count, letter in matches:
        result += letter * int(count)
    
    return result

input_text = "2i1s4i1s15d1o49i1o4d1o3i1o15d1o22d1o20d1o19i1o7d1o5d1o2i1o55i1o1d1o19d1o17d1o18d1o29i1o12i1o26i1o8d1o59d1o27i1o6d1o17i1o12d1o7d1o5i1o1d1o2d1o12i1o9d1o26d1o"
output_text = multiply_letters(input_text)
print(output_text)

Ce petit script va nous renvoyer ce dont nous avons besoin : iisiiiisdddddddddddddddoiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiioddddoiiiodddddddddddddddoddddddddddddddddddddddoddddddddddddddddddddoiiiiiiiiiiiiiiiiiiiodddddddodddddoiioiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiododddddddddddddddddddodddddddddddddddddoddddddddddddddddddoiiiiiiiiiiiiiiiiiiiiiiiiiiiiioiiiiiiiiiiiioiiiiiiiiiiiiiiiiiiiiiiiiiioddddddddodddddddddddddddddddddddddddddddddddddddddddddddddddddddddddoiiiiiiiiiiiiiiiiiiiiiiiiiiioddddddoiiiiiiiiiiiiiiiiioddddddddddddodddddddoiiiiiododdoiiiiiiiiiiiiodddddddddoddddddddddddddddddddddddddo

Etape n°3 : Décoder le Deadfish

Maintenant que nous avons notre code Deadfish, nous allons devoir le convertir pour pouvoir continuer à avancer. Pour ce faire, nous utilisons cet outil (dCode - Deadfish) pour décoder ce bloc :

Nous obtenons donc ce résultat assez étrange : 1b^aR<(;4/1hgTC1NZtl1LFWKDIHFRI/

Etape n°4 : Convertir le b85 en caractères

Avec le résultat précédent, nous allons utiliser encore une fois utiliser l'outil Cyberchef et convertir le message final pour obtenir le flag :

🚩 FLAG
404CTF{M4igr3t_D3_c4naRd}

Last updated