Les Allergies
Alimentaires
Posez votre question Signaler

Comment fixé une faille include local ? [Résolu]

MonkeyBlue - Dernière réponse le 10 août 2009 à 20:35
Bonjour, voici mon code:
<?php
			if(isset($_GET['p']))
			{
				$aInclure = htmlentities ($_GET['p']);
			
				if(file_exists('st/'.$aInclure.'.php'))
					include('st/'.$aInclure.'.php');	
				else
					include('accueil.php');	
			}
			else include('accueil.php');
		?>

le problème c'est que j'ai réussi a remonté dans mon serveur
p=../../../../../../../../boot.ini%00
j'ai cherché sur internet mais je comprend pas comment supprimé cette vulnérabilité
et ce que quelqu'un qui si connais en faille pourrais me corrigé mon code et m'expliqué ?
Lire la suite 

Comment fixé une faille include local »

3 réponses
Réponse
+1
moins plus
Personellement j'utilise une petite fonction pour nettoyer mes variables $_GET :

function CleanVar($var){
    $var = trim($var);
    $RemoveChars  = array( "([\40])" , "([^a-zA-Z0-9-])", "(-{2,})" );
    $ReplaceWith = array("-", "", "-");
    return preg_replace($RemoveChars, $ReplaceWith, $var);
}

$page      	= CleanFileName($_GET['p']);


Elle enlève tout ce qui n'est pas lettre et chiffre, donc plus de problème de ce genre !
MonkeyBlue - 10 août 2009 à 19:27
Oua merci beaucoup h1fra
Ajouter un commentaire
Réponse
+0
moins plus
Ca m'a un peu intrigué cette histoire, et en faisant une petite recherche il s'agirait d'une faille relativement connut et donc le seul moyen de contrer ça, c'est d'utiliser ce type de solution!

Au moins j'aurai appris quelque chose aussi XD

ps: oublie pas de noter ça comme résolut ;)
Ajouter un commentaire
Ce document intitulé « Comment fixé une faille include local ? » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?