Un premier test simple est de tenter de lire le fichier avec cat
:
ELF>P@@�1@8
@@@@@h��@�@@@��@@�� @ @��.>@>@8H.>@>@���@�@DDP�td(!(!@(!@DDQ�tdR�td.>@>@/lib64/ld-linux-x86-64.so
...
On voit qu'il s'agit d'un fichier binaire. On pourrait être tenté de l'exécuter, mais il y a plus simple.
Si on regarde un peu plus loin dans le fichier, on voit dans les ligne suivantes :
...
L��D��A��H��H9�u�H�[]A\A]A^A_��H�H��FCSC{f9a38adace9dda3a9ae53e7aec180c5a73dbb7c364fe137fc6721d7997c54e8d}D�����(���`X��������h�������X���PzRx
...
Ho, un flag !
Mais ce serait vraiment trop simple. Je copie/colle le flag dans un utilitaire qui me donne le nom des caractères Unicode et voit qu'il y a des caractères invisble entres les lettres.
Là, j'utilise Python pour éliminer les caractères non-imprimables mais on peux le faire par différent moyens :
flag = "FCSC{f9a38adace9dda3a9ae53e7aec180c5a73dbb7c364fe137fc6721d7997c54e8d}"
print(*[_ if _.isprintable() else "" for _ in flag], sep="")
J'obtient en exécutant le script mon flag netoyé. J'aurait pu aussi le recopier à la main, mais c'est une solution de facilité.