Time Based
Catégorie: Programmation Difficulté: - Flag: CTFREI{t1m3_b4s3d_1s_d0pe_0mg}
Challenge
Description
Arriveras-tu à trouver le mot de passe de l'admin ?
Charset: abcdefghijklmnopqrstuvwxyz0123456789_
Il y a 0.15s de sleep pour chaque bons chars.
Il est conseillé d'utiliser pwntools afin de résoudre ce challenge.
Connexion: nc vps.ctfrei.fr 5004
Ce challenge tourne sur un docker et n'est pas disponible
Solution
Le titre est assez explicite, il faut regarder le temps de réponse. Le serveur vérifie de gauche à droite, caractère par caractère le mot de passe.
A chaque fois que le serveur passe au caractère suivant, cela ajoute du délai à la réponse, il faut donc tester tous les caractères possibles pour trouver celui qui a le plus gros temps de réponse.
Pour éviter les problèmes de réseaux, il faudra faire plusieurs fois le test pour chaque caractère et ne prendre en compte que la durée la plus basse qu'il aura obtenue, ainsi si un délai inattendu se produit, il sera exclu par les autres tentatives. Ce nombre de tentatives sera nommée retry et on va le fixer à 3, ce qui devrait être suffisant
Enfin, pour ne pas attendre 50 ans, on va multithreadé le tout. Rien de compliqué en soi, on a 37 caractères possibles, on va simplement lancer les 37 en même temps et regardé lequel a mis le plus de temps.
Il ne reste qu'à se connecter avec le mot de passe pour récupérer le flag
Mis à jour