Vous allez voir comment j'ai réussi à résoudre 5 épreuves du challenge alexctf (fiche CTFtime), j'avoue ne pas avoir eu beaucoup de temps à consacrer aux épreuves du coup je n'ai pas toujours pu les creuser autant que je le désirais. En tout cas elles étaient sympathiques.
TR2: SSL 0day
Le challenge était le suivant :
Il demandait simplement de donner le nom d'une faille sur le SSL. Le premier qui me vient à l'esprit est Poodle, perdu ce n'était pas celui là... Second essai avec Heartbleed et c'est parfait ça match ! Voilà 20 points facilement gagnés l'honneur est sauf !
TR4: Doesn't our logo look cool ?
L'épreuve semble au premier abord un peu abstraite surtout que sur le site je ne me rappelle pas d'avoir vu le moindre logo... Je finis par retourner sur la home et remarque le logo du CTF en ASCII ART qui est celui ci :
En regardant le logo du plus près on constate qu'il y a des lettres dans l'ASCII Art... Je vous en ai mis quelques-une en exergue ici :
On repère rapidement la suite suivante : ALEXCTF, ne reste donc plus cas retirer les caractères qui nous parasite et comme stipulé sur le site du ctf les flags seront du format : "ALEXCTF{[A-Za-z0-9_]*}". On retire donc tout ce que n'est pas du format pour arriver à la chaîne suivante : ALEXCTF{0UR_L0G0_ROCKS} ce qui donne 40 points de plus !
Fore1: Hit the core
Pour ce challenge on télécharge le fichier "fore1.core", les fichiers core sont utilisés dans le debug d'application sous Linux. Pour pouvoir rejouer le fichier core il faut avoir la même version du logiciel. Donc pour commencer on va essayer de savoir quel est le logiciel utilisé. Pour cela on lance la commande :
$ file fore1.core
$fore1.core: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from './code'
La réponse ci-dessus nous indique que le fichier core provient de l'application ./code, aucune chance ou presque de reproduire le code à l'origine du core. Du coup on va essayer autre chose de plus classique pour cela on lance la commande suivante pour voir les chaînes de caractères présentes dans le fichier :
strings fore1.core | less
On passe au second écran des chaînes ressorties pour voir si on trouve quelque chose d'intéressant on tombe donc là-dessus :
AWAVA
AUATL
[]AA]A^A_
cvqAeqacLtqazEigwiXobxrCrtuiTzahfFreqc{bnjrKwgk83kgd43j85ePgb_e_rwqr7fvbmHjklo3tews_hmkogooyf0vbnk0ii87Drfgh_n kiwutfb0ghk9ro987k5tfb_hjiouo087ptfcv}
;*3$"
(q9e
aliases
Ce qui est important c'est la chaîne mise en gras. Avec les {} ça ressemble à un flag, mais pas vraiment lisible... Par contre, on retrouve notre masque ALEXCTF avant le premier {. Au final on remarque qu'entre chaque lettre il y a 4 caractères aléatoires, on les supprime donc à la main et rapidement on obtient le flag suivant : ALEXCTF{K33P_7H3_g00D_w0rk_up} et hop 50 points de plus !
CR1: Ultracoded
Nous avons un fichier zero_one à télécharger, fichier texte visiblement, mais le nom fait déjà largement référence au binaire. Ouvrons le fichier voici à quoi il ressemble :
Bon ça semble ultra simple on va remplacer ZERO par un 0 et ONE par un 1 et supprimer tous les espaces et on verra bien ce que cela donne ! Voici le résultat du binaire décodé :
Voici ce que nous donne le base64 une fois décodé :
Bon encore un codage en place cette fois-ci du morse allons voir ce que cela donne :
On repère quelque chose qui ressemble plus à un flag, mais il reste des caractères à éliminer, j'avoue ne pas avoir utilisé trop de logique sauf que la chaîne entre les {} doit donner un texte compréhensible a près un peu de tâtonnement voici le flag en question : AlexCTF{th15_1s_5up3r_5ecr3t_txt}
RE1: Gifted
Le dernier challenge que j'ai eu le temps de mener à terme fut un peu de reverse engineering peu commun pour moi, mais celui-là était super simple. On télécharge le fichier en question, comme d'habitude je commence toujours par afficher les chaînes du fichier ce qui donne à un moment :
Comme vous le voyez ci-dessus le flag est directement dans les strings du fichier 50 points ultra facile !
Conclusion
Je termine donc officiellement 627eme avec mes 210 points sur 1029 participants ayant inscrit au moins un point. Je suis satisfait de ma participation, car je n'avais pas suffisamment de temps disponible pour rentrer dans du développement pour réussir certaines épreuves et d'autres me semblaient compliquées pour mon temps impartie.
A refaire donc l'an prochain ! Pour découvrir plus de writeups et voir les challenges : https://ctftime.org/event/408/tasks/