Broken Binary 2

Catégorie: Système Difficulté: - Flag: CTFREI{3v3n_m0r3_fun_b1n4ry_3xpl0it}

Challenge

Description


Votre but est d'exploiter le binaire (en exécutant ./wrapper). Le flag est situé ici: /home/r00t/flag/flag.txt

Connexion SSH: ssh [email protected] -p 4446

Mot de passe: jail

Solution

Ici on ne peut plus injecter la commande comme dans le challenge précédent (Borken Binary 1). Mais on peut faire ce que l'on appelle une attaque par lien symbolique.

En fait, quand une commande est exécutée on appelle un binaire. Pour savoir où se situe le binaire, le système cherche d'abord dans le répertoire courant, puis s'il ne le trouve pas, regarde dans tous les chemins présents dans la variable d'environnement PATH.

Le but est alors de trouver un répertoire où l'on peut écrire, puis de l'ajouter au début de notre variable d'environnement PATH. Cela fera en sorte que le système ira regarder en priorité dans ce répertoire pour chercher le binaire

Dans ce répertoire on va pouvoir faire un lien symbolique vers /bin/cat que l'on nommera ls dans, ainsi quand le système ira chercher ls et qu'il va regarder dans notre répertoire, il ira en réalité exécuté le binaire cat

Nous pouvons écrire dans le répertoire /tmp donc voici l'exploit :

# Dossier où l'on peut écrire
jail@2105b61395eb:~$ cd /tmp

# Création du lien symbolique entre ls et cat
jail@2105b61395eb:/tmp$ ln -s /bin/cat ls

# Ajout de /tmp au début de la variable PATH
jail@2105b61395eb:~$ export PATH=/tmp:$PATH

# Execution du binaire
jail@2105b61395eb:~$ /home/jail/wrapper
Plus d'input cette fois-ci, tiens, regarde le ls du flag de r00t !
CTFREI{3v3n_m0r3_fun_b1n4ry_3xpl0it}

Dernière mise à jour

Cet article vous a-t-il été utile ?