Writeup NightHawk CTF Training Exercices - ImageMagick

French version

Ce challenge d’entrainement était disponible dans l’attente du NightHawk CTF 2018.

Catégorie: Web Points: 1000 pts

Énoncé (traduit du chinois) : “Can you find the flag in a directory? There is a flag in server https://flaskimage.herokuapp.com/""

En arrivant sur le site on tombe sur une petite interface qui nous propose d’upload une image aux formats :

png, jpg, jpeg, gif, mvg, svg

On à donc la possibilité d’upload une image mvg (Magic Vector Graphics). On sait également que le “moteur” utilisé pour traiter les images est ImageMagick.

La faille à utiliser devient donc claire: Il faut utiliser ImageTragick exploitant la CVE-2016-3714.

Mais en quoi consiste cette vulnérabilité ? -> Le système d’ImageMagick ne filtre pas assez les commandes shell lors du traitement des images. Lors de la conversion de formats comme MVG, il est possible d’insérer des commandes dans les chunks de l’image. Le processus de conversion implémentant une fonction d’exécution de commandes, le service va exécuter les commandes que l’on veut lors de la conversion de l’image.

Avant toute chose, Il ne faut pas oublier qu’on recherche un répertoire, il ne sert donc a rien d’essayer d’exécuter un reverse shell ou autre, c’est une perte de temps (oui j’ai essayé et oui j’ai perdu du temps dessus).

Commençons avec l’exploit de base. Je vais tout faire à la main, j’aime pas trop le module metasploit pour cet exploit.

On crée donc une image MVG avec les lignes suivantes:

Malicious MVG

Cependant, on se rend vite compte que lorsque on upload l’image, le site nous la rend illico, sans donner de résultat d’exécution ou autre. Cela peut paraître perturbant, mais rien de grave !

En effet, si on envoie une image contenant les lignes suivantes:

Malicious MVG

Bingo ! coté requestinspector on a la réponse suivante:

RequestInspector

Bon, d’après l’énoncé, on serait à la recherche d’un dossier 🤔. Celui avec un nom relativement aléatoire semble tout indiqué.

Pour la suite:

Malicious MVG

Nous donne simplement:

Flag folder

Okay, on continue:

Malicious MVG

Et on obtient le flag:

Flag

Cheers, Sicarius

Hey there, Wanna talk about this article ? Hit me up on X :