L’objectif est de faire prendre conscience de la nécessité d’une politique globale en faveur d’une sécurité transparente. Je ne saurais être tenu responsable de toutes mauvaises utilisations de ces informations dans le cas où l’entreprise n’a pas pris au sérieux mon alerte.


Alors que je me balladais tranquillement sur le W3, me voilà tombé sur une URL qui attire l’attention, faisant penser à une sorte d’include qui aboutit sur une faille type LFI et qui est encore plus satisfaisante en exploitant d’autres failles.

Je vais commencer par tout simplement vous donner l’URL qui a juste attiré ma curiosité :

http://www.fournisseurs.century21.fr/sites/all/themes/intranet/dl_cles_consultants.php?cles=sites/default/files/cle_consultants_reprise_copropriete_0.pdf&taille=199071

L’URL est telle quelle, donc brut mais on voit déjà que le paramètre cles appelle clairement un fichier en local qui est : sites/default/files/cle_consultants_reprise_copropriete_0.pdf

Mon premier réflexe c’est simplement de tester en changeant le nom du fichier php pour un nom exotique qui ne devrait pas exister et voir la réponse d’erreur. Le paramètre taille étant inutile, je l’ai enlevé pour la suite. J’ai pris comme nom test.pdf donc ça donne en URL :

http://www.fournisseurs.century21.fr/sites/all/themes/intranet/dl_cles_consultants.php?cles=sites/default/files/test.pdf

Et là ça devient absolument plaisant puisque l’on voit un forcedownload d’un fichier qui n’existe pas donc de taille 0.


Et comme je voulais tester d’accèder à un fichier théoriquement impossible, j’ai découvert dans la foulée que le .htaccess est accessible à tous :

Afficher le texte

Arrivé ici, on a 2 informations qui nous permettent d’établir qu’il s’agisse d’un Drupal :

  • l’architecture du .php
  • l’.htaccess

Au passage, voici le robots.txt qui peut être utile pour la suite :

Afficher le texte

Merci enfin au Changelog de nous donner la version très probable : Changelog. De ce fait, il serait intéressant de faire un petit scan avec un outil bien sympa appelé Droopescan

La commande à faire c’est :

droopescan scan drupal -u ’http://fournisseurs.century21.fr/

Le résultat donne :

Afficher le texte

La version est donc : 6.38.

Ce que je fais ensuite c’est de télécharger cette version précisément : Drupal 6.38

Ensuite, on en revient à notre faille et on essaye de récupérer le code source d’un .php interdit dans le robots.txt pour plus de symbolique encore, j’ai donc choisi xmlrpc.php. L’URL à tester est donc :

http://www.fournisseurs.century21.fr/sites/all/themes/intranet/dl_cles_consultants.php?cles=xmlrpc.php

Et donc ça télécharge ce fichier :

Afficher le texte

A cet instant, j’ai envie de dire p0wned ! Il est donc possible de télécharger un peu tout à condition d’avoir les bons répertoires d’où l’intérêt de garder le scan et de télécharger la version en question.

Et vu qu’on aime faire les choses bien, on a qu’à récuprer le code source du php responsable de tout cela soit dl_cles_consultants.php :

Afficher le texte

Et là on voit que le paramètre taille permet de faire une exploitation de type : XSS Reflected Par ailleurs, il peut être intéressant de renseigner désormais une valeur énorme pour taille histoire d’être toujours dans le vrai. Je choisis donc : 10000000000


Pour exploiter Century21, il suffit donc de télécharger le fichier settings.php contenant les informations de la base de donnée :

http://www.fournisseurs.century21.fr/sites/all/themes/intranet/dl_cles_consultants.php?cles=sites/default/settings.php&taille=10000000000

Pour ma part, j’utilise Firefox-ESR en custom donc je n’ai pas la possbilité de télécharger directement à cause de ma sécurité. De ce fait, j’utilise le Developer Tools. Pour ce faire, vous n’avez qu’à copier le lien ci-dessus, ouvrir votre boîte à outils, lancer le téléchargement puis aller dans Réseau puis cliquez sur le lien et enfin allez dans la réponse pour récupérer le contenu du fichier en format Base64.

Voici un site pour récupérer le fichier sous forme direct : ici

Ainsi on obtient tout :

Afficher le texte

P0WNED !!


Article Suivant Article Précédent