Principe:
Décoder un base64 corrompu (ignorer les caractères en trop et remplacer le cyrillique par de l'ASCII), assembler les résultats et écouter le flag
Infos (cf menu latéral):
🚩 Flaggué! +983 points gagnés —
💾 Téléchargez les fichiers du challenge
404CTF{l4_b4s3_64_3ff1c4c3_m41s_c4pr1c13us3}
Le challenge
Un base64 "à peu près"
Rmx%hZyA*6KQ)
J'ai mis en correspondance l'exemple Rmx avec son binaire. 6 bits semblaient être pas mal, puisque cela correspond au base64: 64 valeurs possibles, soit 2**6, donc, 6 bits, c'est bien
Q et R correspondent au base64, le % n'existe pas. Mais si j'ignore le %, alors le h correspond au base64 100001
0 à droite sont supprimésDécodage cyrillique
=): ça donne du verbiage!
090d apparaissent, ce qui n'est pas du base64!
d185… Via un echo, on constate qu'ils ressemblent à des x
C'est la première fois que je vois un "typo-squatting" dans du base64 :D
Le réflexe d'aller voir le dump hexa me vient du FCSC 2022 où j'avais loupé un flag à cause de caractères unicodes invisibles (mais repérables dans un éditeur hexa)
Table cyrillique
Je pense qu'il existe déjà de telles tables de conversion, mais je n'en ai pas trouvée facilement pendant ce challenge, alors, je l'ai forgée (et je m'en resservirait peut-être un jour!)
Lancement
Oui, j'ai un broken pipe puisque la connection au serveur de challenge est terminée mais bon, je ne suis pas là pour faire du dev propre!
Parle-moi
En pratique, c'est un "fichier de données" pour moi, car j'ignore ce qu'il contient, mais
Linux (nautilus) l'identifie immédiatement comme un fichier audio (la commande file le ferait aussi)
Flag: 404CTF{l4_b4s3_64_3ff1c4c3_m41s_c4pr1c13us3}