Petit challenge d'introduction à la programmation, connecte toi à la connexion netcat pour t'introduire à cette catégorie et n'hésite pas à utiliser la template donnée pour t'aider !
Connexion : nc intro.ctfrei.fr 5000
Ce challenge tourne sur un docker et n'est pas disponible
Solution
Il faut compléter le script, les explications sont en commentaire
from pwn import *
from time import sleep
# Tips:
# - Pour récupérer les caractères aléatoires, vous pouvez soit utiliser une regex, soit le bon vieux split en python !
# - Pour recevoir les données, utilisez: .recv()
# - Pour envoyer des données, utilisez: .sendline()
# (Il peut aussi être utile d'utiliser .recvuntil() ou même .recvall(), mais pas besoin ici !)
conn = connect('intro.ctfrei.fr', 5000)
sleep(4)
print(conn.recv().decode())
conn.sendline(b"test") # Les données envoyées doivent être des bytes, donc soit utiliser: b"string", soit "string".encode()
for i in range(10):
data_received = conn.recv().decode()
print(data_received)
################ On complète à partir d'ici ################
# On récupère le caractère dans les données avec une regex
c = re.search(r'"(\w)"', data_received).group(1)
# On l'encode pour l'envoyer
conn.sendline(c.encode())
# Réception du flag
print(conn.recv().decode())
conn.close()