Je veux la lune !

CatÊgorie: Exploitation de binaires - DifficultÊ: Intro

Description:

Netcat : nc challenges.404ctf.fr 31215

Solution:

Pour ce chall, nous avions accès au code source dÊployÊ sur le netcat grÃĸce au fichier .sh fourni dans l'ÊnoncÊ.

En regardant ce fameux code source nous voyons ce qui est fait lorsque nous lançons la commande netcat et entrons un mot lorsque le script le demande :

#!/bin/bash

Caligula=Caius

listePersonnes="Cherea Caesonia Scipion Senectus Lepidus Caligula Caius Drusilla"

echo "Bonjour Caligula, ceci est un message de HÊlicon. Je sais que les actionnaires de ton entreprise veulent se dÊbarrasser de toi, je me suis donc dÊpÃĒchÊ de t'obtenir la lune, elle est juste là dans le fichier lune.txt !

En attendant j'ai aussi obtenu des informations sur Cherea, Caesonia, Scipion, Senectus, et Lepidus, de qui veux-tu que je te parle ?"
read personne
eval "grep -wie ^$personne informations.txt"

while true; do
    echo "De qui d'autre tu veux que je te parle ?"
    read personne

    if [ -n $personne ] && [ $personne = "stop" ] ; then
    exit
    fi

    bob=$(grep -wie ^$personne informations.txt)
    
    if [ -z "$bob" ]; then
        echo "Je n'ai pas compris de qui tu parlais. Dis-moi stop si tu veux que je m'arrÃĒte, et envoie l'un des noms que j'ai citÊs si tu veux des informations."
    else
        echo $bob
    fi  

done

Ici nous comprenons que dans la boucle while, il va nous demander d'entrer du texte qu'il stockera dans la variable personne. Si nous entrons par exemple Cherea ou Scipion, nous avons les phrases du fichier informations.txt qui contiennent chacune le pseudo envoyÊ :

Mais quand nous entrons un texte qui n'est pas dans la liste des personnes, un message nous indique qu'il n'a pas compris :

Maintenant il faudrait comprendre comment nous pourrions lire le contenu du fichier lune.txt comme ÊnoncÊ dans la description du chall. Si nous essayons d'entrer 404CTF ou des commandes comme telles que cat lune.txt ou nano lune.txt nous n'avons aucun rÊsultat...

N'ayant que très peu (voir aucunes) connaissances en pwn, j'ai tentÊ de voir ce que nous pouvions faire avec la commande grep qui Êtait exÊcutÊe. J'ai donc continuÊ à chercher pour voir ce que je pouvais faire et après une trentaine de minutes à rÊflÊchir sur la manière de faire, j'ai eu un Êclair (de gÊnie si on veut).

J'ai pensÊ à rentrer directement ce que nous cherchions "404CTF" ainsi que le fichier à lire (lune.txt). Cela donne donc cette commande lorsque le script nous le demande :

GrÃĸce à cela, nous obtenons bien le flag que nous cherchions.

🚩 FLAG
404CTF{70n_C0EuR_v4_7e_1Ach3R_C41uS}

Last updated