Les chatons ont la réponse – FCSC 2020 // Tarte Tatin


Et un peu de sucre en poudre !
Recette pour un défi réussi !

Intro

Non, je n’ai pas le courage de vous faire le writeup de la même façon que la chanson !

Recette

Dans notre shell, commençons par exécuter le programme, il attend une entrée de notre part, qui à moins d’un coup de chance phénoménal sera fausse.

J’aime bien chercher si un code est hardcodé dans le programme, donc nous allons commencer avec strings :

La partie surlignée me titille …

En espérant que ce ne soit pas avec la string juste au-dessus, mais on va passer sous xxd pour essayer de retrouver notre cible :

On la retrouve bien, mon instinct de chat me dit que c’est pas mal

Assez de supposition, c’est l’heure de lancer radare2 :

Oh la chance !!!!

On regarde plus en profondeur ?

Oh wait !!!!!

Bon, petite douche froide, après cette sensation d’être un Uber cracker, la fonction obj.pass_enc me fait peur … Notre string a été encodé, il va falloir la reverse … Reprenons notre souffle, on note cela sur un coin du cahier, et on continue notre deadlisting :

En PLS le chaton !!!!!

obj.flag_enc … la longueur du truc nom d’un chien ! Je suis en boule sur mon fauteuil, j’ai presque envie de pleurer, mais qu’est-ce que je fous là moi ?
Reprenons-nous, c’est un défi à 20 points, ils ne vont pas sortir les armes lourdes pour le moment, il y a sûrement plus simple, plus logique.
J’aime beaucoup sym.transform mes chatons, ce n’est pas un call naturel, ça a donc été créé par un humain (si l’on peut considérer un dev’ comme un humain), il y a donc une chance pour que nous puissions la reverse.

Content le chat !

Je ne sais pas pour vous, mais moi ça va mieux ! J’avoue, c’est à cause de toutes ces heures passées sur les keygenme que je suis rassuré. Mais nous allons découper cela ensemble.
Dans ce call, nous avons une initialisation, une boucle tant qu’il reste des caractères, et un RET.
Dans la boucle, nous avons la récupération de RDI et la manipulation dessus.
Nous savons que RDI c’est le flag encrypté, mais surtout lors de l’exécution, c’est l’endroit où le soft récupère notre saisie !
Cette saisie sera ensuite manipulée pour retirer -1 à la valeur ASCII du caractère, c’est à dire que si notre entrée est égale à 23456789 elle passera à 12345678.
Et à votre avis mes chatons, que ce passe t’il quand on retire 1 à NzTfdvs4Q4ttx1se ?

Oui bravo à toi qui à suivi ! Elle se transforme en MySecur3P3ssw0rd, qui est le mot de passe pour l’application, on va la tester de suite :

FCSC{83f41431c111062d003dd0213cf824d66f770a0be1305e2813f15dd76503a91d}

Finalement, pas si secure le password si un chaton arrive à le reverse ^^


Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.