Correction CTF

Salut à toute l'équipe ! Est-il possible d'avoir la correction des CTFs de cette année ? Parce-que je crois que la manière dont je m'y suis pris n'était pas la plus efficace (sauf si faire tourner son PC pendant quelques heures à hasher des string était voulu dans ce cas je vous déteste un tout petit peu) (Et je vous ai envoyé un mail à info@prologin.org si vous avez le temps de jeter un petit coup d'oeil ;) )

Merci !

Salut !

La correction est dans les tuyaux, elle arrive probablement dans la journée. Je crains qu'il faille hasher beaucoup de strings :) avec un peu d'astuce le temps de calcul descend sous la minute.

Bonjour,

La correction des CTFs arrivent bientôt et on a bien vu ton mail, on attends de compiler tous les gens qui veulent changer et on te réponds après ! :)

10 jan. 2019 à 15:26:04 Modifié le 10 jan. 2019 à 15:26:36

Merci beaucoup ! Pour moi avec un peu d'astuce je suis descendu sous la journée x)

14 jan. 2019 à 22:56:33 Modifié le 14 jan. 2019 à 23:06:17

Merci pour la correction ! Un point d'ombre persiste cependant au niveau du CTF3, voici mon code pour resoudre le probleme :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import sys
from functools import reduce
from itertools import takewhile,count 
#Le message chiffré (valeurs ASCII de chaque caractères) 
b = [181, 245, 231, 164, 119, 65, 99, 32, 141, 188, 188, 732, 105, 120, 42, 105, 227, 196, 164, 8224, 182]

for j in range(len(b)):
    for i in range(256):
        #Brute force
        if (((lambda tr: ((tr(sum(list((((i) >> n & 1) << a for a, n in enumerate([int(c) for c in [4, 3, 5, 7, 2, 1, 0, 6]]))))) ),)) (lambda x: x ^ (j * 33 % 256))) == (b[j],)):
            print(i,bytes(chr(i).encode('utf-8')),b[j])
# Flag : very_crypto_such_wow
# Sha1 : 10b60a6e366d8de2e98ce077820ec55b39ef60be

Mon problème vient du 2eme underscore et du dernier w, le numéro qu'est censé sortir le programme pour ces deux caractères est respectivement 732 et 8224 ce qui est impossible à première vue. Du coup bah j'ai été obligé de brute forcer pour trouver ces deux caractères (et ça me plaît pas tant que ça figurez-vous !) Donc si quelqu'un a une explication je suis preneur ! Merci !

Edit : Je pense que ca vient du fait que ce caractère -> ˜ n'est pas dans la table ASCII seulement dans unicode et du coup bah ca marche pas bien, idem pour -> †

Salut feloux !

Ton code ne marche pas car le tableau sensé contenir le fichier chiffré est faux. Si c'était un tableau d'octets, leurs valeurs numériques seraient comprises entre 0 et 256, ce qui n'est pas le cas chez toi.

Ce code shell permet d'obtenir simplement ce tableau :

1
curl https://prologin.org/static/ctf/2019/chal3_58fbc4cbe51740988a3fbfc8e903dd81277248cf_sortie.txt | python -c 'import sys; print(", ".join(map(str, sys.stdin.buffer.read())))'

Ce qui donne :

1
[181, 245, 231, 164, 119, 65, 99, 32, 141, 188, 188, 152, 105, 120, 42, 105, 227, 196, 164, 134, 182]

Répondre au sujet

Vous devez vous enregistrer ou vous connecter pour poster des messages.