mardi 16 février 2016

Tutoriel LFI php://filter + Connexion Mysql + Dump Database

Bonjour je vais poster un petit tutoriel sur un méthode LFI très sympa, mais surtout très facile.
Nous parlons ici des wrappers.

Explication de cette faille :

PHP dispose de nombreux protocoles natifs, pour différents styles d’URL, à utiliser avec des fonctions de fichiers telles que fopen() et copy()

Pour avoir plus d'information je vous invite à lire le document PHP suivant :

http://ift.tt/1VktYda

Donc, en résumé, le problème depuis PHP 5.0 est que certaines fonctions [...], et ici pour cette faille ce qui nous intéresse sont les flux d’entrée et de sortie.

En exemple, php://filter permet d’appliquer un filtre aux données qui transitent dans le flux d’entrée et de sortie. On peut illustrer cela avec la fonction readfile() au lieu de récupérer les données d’un fichier en clair, vous pouvez récupérer les données encodées en base64, en rot13, ou encore (dé)compresser en bzip2 le fichier.

Mais aussi, par exemple, si vous lancez un fopen() sur php://output dans votre script PHP, toutes les données que vous écrirez serons écrites dans la STDOUT ; il s’agit donc d’un équivalent aux fonctions echo ou print.

Exploitation :

Cherchons la vulnérabilité:

Donc en cherchant un peu dans les différentes pages de ce site cible, je remarque une chose qui me permet de penser qu'il est vulnérable au LFI wrapprers : les pages incluent des fichiers à l'extension .php



Donc je vais tester et voir si elle peut être vulnérable, avec un retour en arrière de répertoire, via un simple ../ à la place du page.php



Voilà, cette erreur me signifie qu'elle peut être vulnérable. De là, nous allons voir si l'on peut afficher le fichier /etc/passwd en modifiant notre URL en conséquence.



Voilà, cela confirme la présence d'une faille de type LFI.

Je pourrais tenter de faire une injection via le proc/self/environ ou bien via le /proc/self/fd ou du LFI log poisoning, mais cela fera l'objet d'un autre tutoriel.

L'exploitation :

Cette méthode est très facile à réaliser.

Nous allons utiliser php://filter pour lire les fichiers (Source) cryptés en BASE-64.
C'est utile quand nous voulons récupérer des informations MySQL ou pour tester n'importe quelle vulnérabilité mais le fichier doit obligatoirement être en .php

Nous aurons besoin d'un site (ou d'un soft) pour décrypter du BASE64 :

http://ift.tt/1VktYdh

Commençons :

Disons que je veux lire la page index.php, je vais modifier mon injection comme suit :

http://ift.tt/1VktYtv

Et on va obtenir un code BASE64 sur la page :



Si on décode ce code en BASE64, ont obtient ceci :



On y voit 2 inclusions de fichier PHP :

cOnfig.php
connect_database.php

Je vais modifier l'URL pour inclure non plus index.php mais c0nfig.php



On décode ces informations :



On a récupéré les identifiants de connexion MySQL.

Maintenant que faire avec ça?

Eh bien je vais me connecter à leur base de données et la dump :

Lien informatif : http://ift.tt/1KUBaw4

Donc les informations sont :

$dbhost = 'masqué les amis';
$dbuser = 'wse82094';
$dbpass = '4qa95hb235';
$dbname = 'wse82094';

Donc selon le protocole de connexion, nous allons faire :

mysql -h dbhost(masqué ici) -u wse82094 -p (puis entrée, puis mettre le password)



Pour voir les bases de données, nous allons utiliser SHOW DATABASES;



Je ne vais pas passer toutes les commandes MySQL, tel que USE nom_database, ou SHOW db_name, etc. À vous d'apprendre à vous en servir.

Maintenant je quitte avec exit

On a vu les Db suivantes :

  • wse82094
  • wse82094_1


Je vais juste dumper la premier DB : wse82094

Comment ? voici un petit lien utile :

http://ift.tt/1KUBdry

Donc maintenant c'est easy :)

On va utiliser mysqldump :

mysqldump -h dbhost(masqué ici) -u wse82094 -p wse82094 > dump.sql

Note : wse82094 est le nom de la database que je dump.




Voilà c'est fini, j'espère que ce tutoriel vous a plu.

J'ai voulu poster un de mes vieux tutoriels, en espèrant voir d'autre membres suivre un peu, ce qui est le but d'un forum... le partage.


from Hackademics : Forum de hacking – hackers white hat – cours de securite informatique, apprendre langage python, tutoriels de reverse engineering http://ift.tt/1Ofc06b
via IFTTT

Aucun commentaire:

Enregistrer un commentaire