A system administrator, frustrated after a heated debate about cybersecurity standards, ended up creating a poorly secured cheat sheet. Convinced that he could outsmart his own cybersecurity experts, he disregarded some basic principles. The result? A vulnerable document that might hold sensitive information. Can you uncover his mistakes and decipher the secrets hidden ?
challenges.hackday.fr:48118
Ce challenge tourne sur un docker et n'est pas disponible
Solution
Grâce à ce que répond le serveur, on commence par déterminer la taille du flag :
import socketclient = socket.socket(socket.AF_INET, socket.SOCK_STREAM)client.connect(('challenges.hackday.fr',48118))client.settimeout(3)client.recv(1024)for i inrange(1,25): client.send(b'a'* i +b'\n') data = client.recv(1024)ifnot data.startswith(b'Wrong length'):print(f'Flag size: {i}')# Flag size: 21
Maintenant, on sait que le flag commence par HACKDAY. Si l'on essaie ça, on se rend compte qu'il y a un délai de réponse.
Ce délai augmente pour chaque lettre correcte de gauche à droite. On va utiliser ce délai de réponse pour savoir quelles sont les bonnes lettres (il faut avoir une connexion stable).
Comme le temps d'attente est linéaire, on a vite fait d'attendre 2s par lettre. J'ai donc multithreadé le script pour gagner du temps, mais limité à 20 threads pour réduire le risque d'instabilité et donc de faux résultats.