**Challenge WEB 300** Voici le challenge Web 300 proposé durant les CTF. C'est un challenge original qui nous a donné vraiment mal à la tête. Je pense que nous avons été nombreux à chercher un rapport entre les X-MEN et le challenge. **Résolution :** {{ :ctf:2015:grehack:llama1.png?nolink |}} Voici la page d'accueil sur laquelle on arrive. Premier réflexe :  regarder le code source. Dans les méta données, on pouvait voir une ligne avec un numéro de commit "Update commit 548789". Deux options s'offrent à nous : - Soit le site est un CMS (après googlisation ce n'est pas le cas) et il faut trouver sa version. - Soit le site utilise un soft de subversionning (git, svn, ou autre). Testons de trouver un repository : http://192.168.4.1:8300/.git/ On se retrouve devant un "Forbidden". Cela veut dire qu'il y a un répertoire git. Sur notre pc , on crée un répertoire : mkdir llamas On va dedans : cd llamas Et on git clone : git clone http://192.168.4.1:8300/.git/ . Cela aura pour effet de cloner le git du site sur notre machine. Et ainsi de télécharger les sources du site. {{ :ctf:2015:grehack:liste_git2.png?nolink |}} En inspectant le code source d'index.php on ne voit rien qui nous permettent de valider directement l'épreuve. Néanmoins, il y a un include d'un fichier ".passwd". Cependant, nous n'avons pas ce fichier dans la version de git que nous avons clonée. Par conséquent on va afficher l'historique des commits réalisé avec git : git log commit 55ceec98046bea3fda2d9cc358660f066505765b Author: Franck De Goër Date: Sat Nov 7 09:54:10 2015 +0100 Add GET parameter verification commit 3c93a840251d5ec6bdfbde683e2def9fd0be4a28 Author: Franck De Goër Date: Sat Nov 7 09:52:17 2015 +0100 Add password verification in php commit e82add9f51061086903ad0f7cfcf9568c8c8d140 Author: Franck De Goër Date: Sat Nov 7 09:49:45 2015 +0100 Add form to enter password commit 1c9b67a336c7ce58163567ba9193b747b2e780b5 Author: Franck De Goër Date: Sat Nov 7 09:49:28 2015 +0100 Add subtitle to webpage commit 492f71e69e7416e6c0765bd936274f9eb3a6e53c Author: Franck De Goër Date: Sat Nov 7 09:36:10 2015 +0100 Add missing files commit 1f866c2c1aab83dabb6a2b5a4db18540d1151db7 Author: Franck De Goër Date: Sat Nov 7 09:36:01 2015 +0100 First draft of web page commit f9043c688d52f51d9102ef78f92e55144fb164a7 Author: Franck De Goër Date: Sat Nov 7 09:35:48 2015 +0100 Import gitignore La version de git qui nous intéresse est la première. Pour synchroniser notre pc avec cette version  : git reset 55ceec98046bea3fda2d9cc358660f066505765b On s'aperçoit qu'on récupère le fichier .passwd qui n'avait pas été récupéré lors du premier clonage (restriction de git). {{ :ctf:2015:grehack:liste_git.png?nolink |}} On affiche le contenu du fichier .passwd :\ Du coup on essaye : http://192.168.4.1:8300/index.php?pwd=i_love_llamas_even_more_than_i_love_you On obtient : {{ :ctf:2015:grehack:llama2.png?nolink |}} Accès authorisé mais pas de flag ... Si on retourne voir dans le code source de index.php , on trouve une LFI (local file inclusion) : On inclus dans la variable user le fichier .flag qui est dans le dossier parent : http://192.168.4.1:8300/index.php?pwd=i_love_llamas_even_more_than_i_love_you&user=../.flag On obtient : le flag : *they_are_not_llamas_they_are_alpacas*