Weak signature (Cryptanalyse) - 404CTF 2022

Weak signature (Cryptanalyse) - 404CTF 2022

Fichiers du challenge Principe:
Comprendre l'algorithme de signature d'un exécutable (très, très mauvais algorithme!) et en forger un à partir d'un exemple de démonstration

Le challenge

Détourner un code signé d'exemple (dispo ici) pour exécuter du code arbitraire et lire le flag

Le fichier de démo

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}

Fichiers du challenge

↩ Retour à la liste des challenges

⇇ Retour à l'accueil