Team Burton

Énoncé

Nous avons intercepté un message de Cipher contenant leur prochaine cible. Le message est chiffré avec un chiffrement XOR à clé répétitive. Cependant, une erreur critique a été commise : chaque message commence toujours par l'en-tête :

ORDER:

Voici le message intercepté :

1c1c01041963730f31352a3a386e24356b3d32392b6f6b0d323c22243f6373
1a0d0c302d3b2b1a292a3a38282c2f222d2a112d282c31202d2d2e24352e60

Analyse

Nous savons que :

En utilisant la formule :

cle = plaintext XOR ciphertext

Nous pouvons extraire la clé.

Extraction de la clé

En appliquant XOR entre l'en-tête ORDER: et le début du message chiffré :

Key (hex): 534e45414b59
Key (bytes): SNEAKY

Déchiffrement

Nous utilisons la clé trouvée pour déchiffrer l'intégralité du message :

ciphertext_hex = "1c1c01041963730f31352a3a386e24356b3d32392b6f6b0d323c22243f63731a0d0c302d3b2b1a292a3a38282c2f222d2a112d282c31202d2d2e24352e60"
key = bytes.fromhex("534e45414b59")  # "SNEAKY"

ciphertext = bytes.fromhex(ciphertext_hex)

# XOR decryption
plaintext = bytes([ciphertext[i] ^ key[i % len(key)] for i in range(len(ciphertext))])

print(plaintext.decode("utf-8", errors="ignore"))
        

Résultat

Le message déchiffré contient le flag :

THM{the_hackfinity_highschool}

Flag trouvé et validé : 30 points

Flag by Petitoo & Lux_