logo Homepage
+  NewbieContest
|-+  Divers» Hacking» methode sécurisée pour un include ???
Username:
Password:
Pages: [1]
  Imprimer  
Auteur Fil de discussion: methode sécurisée pour un include ???  (Lu 2147 fois)
AKO1712

Profil challenge

Classement : 3363/50637

Néophyte
*
Hors ligne Hors ligne
Messages: 10


Voir le profil
« le: 14 Octobre 2007 à 22:15:18 »

Imaginons un site sur lequel on trouve a la racine les dossiers pages/ et admin/
Le dossier admin/ est protégé par un .htaccess et .htpasswd.
Le dossier pages/ renferme les pages du site (rien de confidentiel dedans)
et a la racine se trouve un fichier index.php dans lequel on trouve un "include(pages/$_GET['pages']);"

Dans ce cas, est il neccessaire de 'parer' la faille include (en verifiant si la page existe, etc...), vu que (logiquement) il n'est pas possible de lire le contenu du dossier admin/ si on marque dans l'url : www.site.com/index.php?page=../admin/.htpasswd

Arreter moi si je me trompe mais pour moi php interpréterais : include(pages/../admin/.htpasswd)... ce qui donnerais une erreur (ou en tout cas, ne permettrais pas d'acceder au pass)

Est-ce que je me trompe, ou cette methode suffit pour 'sécuriser' un include ??
« Dernière édition: 14 Octobre 2007 à 22:17:44 par AKO1712 » Journalisée
zours

Profil challenge

Classement : 516/50637

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 811


Voir le profil
« #1 le: 15 Octobre 2007 à 07:23:16 »

Ben oui tu te trompes. Des ".." dans un chemin, c'est tout à fait correct.
Journalisée
micka13
Profil challenge

Classement : 3263/50637

Membre Junior
**
Hors ligne Hors ligne
Messages: 86


Voir le profil
« #2 le: 15 Octobre 2007 à 16:39:04 »

Les ".." signifient en gros , retour en arriere d'un dossier.
Le "." signigie repertoire courant ;
Exemple:

http://www.newbiecontest.org/forums/nimportequoi/index.php  ==> Erreur 404

http://www.newbiecontest.org/forums/./index.php ==> http://www.newbiecontest.org/forums/index.php

http://www.newbiecontest.org/forums/../index.php ==> http://www.newbiecontest.org/index.php
« Dernière édition: 15 Octobre 2007 à 16:41:27 par micka13 » Journalisée
AKO1712

Profil challenge

Classement : 3363/50637

Néophyte
*
Hors ligne Hors ligne
Messages: 10


Voir le profil
« #3 le: 15 Octobre 2007 à 18:07:15 »

ok...
mais en fait, je posais cette question car j'ai trouvé un site qui est organisé comme je l'ai dit plus haut, mais j'ai essayé justement de mettre par exemple ?page=toto.php, et celui ci m'indiqué

Warning: main(pages/toto.php) [function.main]: failed to open stream: No such file or directory in /mnt/100/****.fr/*/*/************/******/index.php on line 129

Warning: main() [function.include]: Failed opening 'pages/toto.php' for inclusion (include_path='/mnt/100/*****.fr/*/*/***********/include:.:/usr/php4/lib/php') in /mnt/***/*****.fr/*/*/*********/*****/index.php on line 129


[les * sont volontaires]

J'ai donc pensé que la faille include était présente. Mais seulement en mettant ../admin/.htaccess je tombe sur la page principale. J'en deduis donc que la variable $_GET['pages'] est un minimum 'filtrée'.
Au debut je me suis dit que le fait de mettre '..' dans la variable était filtré mais j'ai remarqué qu'il y a un dossier divers/ dans pages et en faisant ?pages=divers/../toto.php  (en transformant les '/' par %2F) ...ça me donnait une erreur. Donc les '..' ne sont pas filtré comme je le pensais.
Neanmois j'ai essayé un ?page=divers%2F..%2F..%2F..%2Fadmin%2F.htaccess  mais cela n'a rien donné ! (je retombe sur la page d'accueil)

Du coup, je me pose toujours la question sur comment il fait pour se proteger de la faille include, alors que je tombe sur des 'Warning' la plus part du temps. Donc, si vous pensez savoir comment le script a été fait, ça m'interresserais bien de connaitre votre avis. 

[ps]Rassurrez vous, je ne compte pas du tout faire quoi que ce soit de 'méchant', mais ça m'amuse (et je pense que je ne suis pas le seul  ) de traquer les failles dans les sites web. [/ps]

merci pour vos reponses...
« Dernière édition: 15 Octobre 2007 à 18:10:19 par AKO1712 » Journalisée
Nms

Profil challenge

Classement : 56/50637

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 794


Voir le profil
« #4 le: 15 Octobre 2007 à 18:36:46 »

Ptet un filtre sur la chaine "admin" ou ".htaccess"... Fais des tests pour confirmer ou infirmer cette hypothèse. Genre teste ?page=../pages/divers/../../index.php, puis ?page=pages/divers/admin/../../../index.php etc. etc.
Journalisée

Ex Newbie Contest Staff :
Nms
Status :
Concepteur d'épreuves
Citation :
Je ne sais qu'une chose : que je ne sais rien. (Socrate)
Pages: [1]
  Imprimer  
 
Aller à: