Cache cache (Exp. Binaires) - 404CTF 2022

Cache cache (Exp. Binaires) - 404CTF 2022

Fichiers du challenge Principe:
Avancer l'heure de sa machine pour connaître le mot de passe 'aléatoire' d'accès au challenge à venir, puis utiliser ce mot de passe sur le serveur lorsque l'heure du serveur correspond à celle modifiée

Le challenge

Le challenge nous demande d'exploiter à nouveau un binaire (dispo ici) pour lire le flag

Exploration

On lance le binaire pour voir ce qu'il en est: il nous demande un pseudo et un mot de passe
On essaie une longue entrée, qui se fait tronquer: peut-être a-t-on un buffer overflow?

edb

On lance alors edb et on recommence
En avançant dans l'exécution, on trouve un "Monsieur Dupont": aurait-on déjà trouvé le login?
Ne voulant pas relancer le programme, je force directement le RIP pour ignorer le JMP et aller à Bonjour Monsieur Dupont
On me demande un mot de passe, j'entre mon IOC, j'avance et je vois qu'elle est comparée à une chaine qui ressemble à un mot de passe (RDI)

Rand et time

En reprenant l'exécution, je m'aperçois qu'à un endroit, on trouve des caractères, du time et du srandom

J'infère alors que les caractères constituent un alphabet des possibles, et que le time sert à initialiser le srandom qui est la définition de la seed pour des appels à rand. La conséquence? Si je trouve quelle est cette seed sur le serveur, je suis capable de reproduire les valeurs rand générées et de connaitre le mot de passe

Tricher avec l'horloge

Je décide alors de changer l'heure de mon PC, de lancer le binaire, et de regarder, dans la mémoire, quel est le mot de passe
Je remets l'heure normale, et j'utilise alors ce mot de passe en boucle sur ma machine, toutes les 800ms. Dès qu'il est à nouveau 23:00:00, le mot de passe marche!

Exploit

Je refais pareil, cette fois avec le serveur (et avec 23:38:00 puisque le temps a passé)
Une fois l'heure passée, je regarde dans les réponses du serveur et je trouve le flag:
404CTF{13_10UP_D3V0r3_14_H411384rD3}

Je ne sais pas si cette méthode était celle attendue, puisqu'elle me semble plus proche du reverse que de l'exploitation de binaire. Il me semble qu'un ret2libc était attendu. Mais tant pis!

Fichiers du challenge

↩ Retour à la liste des challenges

⇇ Retour à l'accueil