La démo contient un script de démonstration signé façon "Hello world"
On test le challenge avec le script de démo (qu'on base64-ifie)
Et on se prépare un petit script pour le faire automatiquement
Algorithme de signature
En analysant l'algorithme de signature, on s'aperçoit qu'il suffit que les données
fasse la même longueur et la même "somme" (en caractères ASCII)
On le vérifie avec un petit test rapide sur sum et len
Payload
Il ne reste alors plus qu'à forger le payload avec notre commande, suivit d'un commentaire
de sorte que la longueur totale soit fixe et la somme aussi
Pour que la somme soit constante, j'ai utilisé un caractère "haut" (0x7a soit z)
et un caractère "bas" (0x01). Utiliser 0x00 aurait pu être possible mais comme
ce caractère sert souvent de fin de string, j'ai préféré l'éviter
On notera aussi un complément 0x04 en fin de commentaire pour faire le complément
Flag
Et le fichier est accepté, le flag tombe:
404CTF{Th1s_Ch3cksum_W4s_Tr4sh}