Eval me 2

Catégorie: Programmation Difficulté: - Flag: CTFREI{3v4l_1s_d4ng3r0u5}

Challenge

circle-info

Description


Arriveras-tu à passer toutes les étapes de ce programme ?

Il est conseillé d'utiliser pwntools afin de résoudre ce challenge.

Connexion: nc vps.ctfrei.fr 5003

circle-exclamation

Solution

Le serveur nous envoie une série d'expressions mathématiques à résoudre, il faut donc créer un client TCP pour s'y connecter et y répondre en boucle.

Le challenge attend de nous que nous utilisions la fonction eval, ce que je déconseille impérativement (d'ailleurs la suite de ce challenge "Eval me 2" essaie de se jouer de ça pour nous tendre un piège)

Une recherche sur google permet de trouver des alternatives safe pour faire la même chose, comme cette réponse StackOverFlowarrow-up-right (cimer chef)

En utilisant le même script que le challenge précédent (Eval me 1) on obtient une erreur puisque le serveur essaie de nous faire évaluer :

exec("f=open(file,'r').read()[::-1];open(file, 'w').write(f);exit()")

Heureusement que nous avions prévu le coup, sinon notre fichier aurait été réécrit à l'envers...

Il faut simplement aujouter à notre script le fait d'envoyer un message vide lorsqu'il ne peut pas résoudre l'expression. Pour éviter une boucle infinie, si le mot CTFREI est détecté dans le message reçu, on coupe la boucle

Mis à jour