Try Me

Catégorie: Prog Difficulté: - Flag: CTFREI{f1r5t_t1m3_pr0gr4mm1ng?}

Challenge

Description


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

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()

Dernière mise à jour

Cet article vous a-t-il été utile ?