hack continuel de mon site besoin d'aide

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : hack continuel de mon site besoin d'aide

par zeus » 20 mars 2008, 16:46

Tu as vérifié qu'il ne restait aucun script caché sur ton serveur ?

genre, des fichiers qui commencent par point (.) ...

par gipelo » 20 mars 2008, 16:06

merci à tous,

bonne et mauvaise nouvelle:

j'ai viré tous sur mon site web en ne laissant que le forum: phpbb3.0 et ...
et là toujours le même probléme

par Rei Itchido » 17 mars 2008, 11:56

par gipelo » 16 mars 2008, 23:20

je viens de refaire mon script page.php

Code : Tout sélectionner

<?php /*************************Variable de paramétrage***********************/ //$dirname="./"; //$Menu_path indique le chemin de retour //$Menu_path_texte indique le texte a afficher pour le lien chemin retour //$N_page: indique la page courante $NB_Images_Par_Page=50; //definition nb image par page $TT_Miniature="TN_"; //definition de l'entéte des miniatures /************************Définition des variables***********************/ $Dir_Name=htmlentities($_GET["dirname"]); $Menu_path=htmlentities($_GET["Menu_path"]); $Menu_path=htmlentities($_GET["Menu_path_texte"]); $N_page=htmlentities($_GET["N_page"]); $fichier_image=array (); // dossier qui vas contenir le nom des fichier jpeg $NB_Images=0; $NB_pages=0; // nombre de page total de l'album init a 0 $CurPage=pathinfo($SCRIPT_FILENAME); // obtention du nom de la page $Page_courante=$CurPage["basename"]; //variable qui contient l'adresse de la page courante $fichier_parametre=$dirname."/info.php"; //fichier de parametre $Pos=50*($N_page-1); // détermine la position de base dans le tableau des images $Position=-1; /***********************************************************************/ include($fichier_parametre); /********Détermine si le fichier est une miniature ou pas********/ function is_miniature($TT_Miniature,$nom_fichier) { $entete=explode($TT_Miniature,$nom_fichier); if ($entete[0]==$nom_fichier) $Is_miniature=false; else $Is_miniature=true; return $Is_miniature; } /***********************************************************************/ /************************Affichage du titre******************/ if ($Type_Titre==1) $Titre= "<img src=$Nom_meeting>"; else $Titre="$Nom_meeting"; /**********************Determine la page ou doit revenir le diaporama*********************/ $Adr_retour=$Page_courante."&N_page=$N_page"."&dirname=$Dir_Name"; /************************Met les noms de fichier dans le tableau $fichier_image******************/ $dh=opendir($Dir_Name); while (($file=readdir($dh))!== false) { $info_fichier=pathinfo($file); if ((($info_fichier["extension"]=="jpg") or ($info_fichier["extension"]=="JPG")) && is_miniature($TT_Miniature,$file)==false) //si le fichier est un fichier jpeg et pas une miniature on le rajoute dans le tableau de liste des images { $Position=$Position+1; $fichier=$Dir_Name."/".$file; $Affiche_image="<a href=diaporama.php?Index=$Position&Retour=$Adr_retour ><img src=\"thumbgen.php?fichier=$fichier\" border=\"0\"></a>"; $fichier_image[]=$Affiche_image; } } /**********************Determine le nombre de page*********************/ $NB_Images=sizeof($fichier_image); $NB_pages=ceil($NB_Images/$NB_Images_Par_Page); /***********************************************************************/ ?> <html> <head> <title>Corvette-online.net photos de meetings</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link href="styles/Autostyle.css" rel="stylesheet" type="text/css"> </head> <BODY bgcolor="#ffffff" background="../../Rencards/commun/fds1.jpg" text="#000066" link="#000066" vlink="#000066" alink="#ff0000"> <? include("../../header.php"); ?> <table width="100%" height="100%" border="0" align="left" cellpadding="0" cellspacing="0"> <tr> <td width="55" rowspan="2" valign="top" background="http://corvetteonline.free.fr/Index/page1_r2_c1.gif"><img src="http://corvetteonline.free.fr/Index/smlgauche.jpg" width="55" height="2"></td> <td width="100%">&nbsp;</td> </tr> <tr> <td width="100%" valign="top"><div align="center"> <TABLE align="center"> <TR> <TD height="69" colspan="2" ALIGN=CENTER><p><font size="6"><b><font size="5" face="Verdana, Arial, Helvetica, sans-serif"><font size="4"> </font></font></b></font><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="+1"><b> <?php echo($Titre); ?> </b></FONT></p> <hr noshade> <table width="506" border="0" cellspacing="0" bordercolor="#000066"> <tr> <td><div align="center"><font size="2" face="Geneva, Arial, Helvetica, sans-serif"><b> </b></font></div></td> </tr> </table></TD> </TR> <P> <TR> <TD colspan="2" ALIGN=CENTER> <TABLE align="center"> <TR> <TD ALIGN=CENTER VALIGN=BOTTOM> <?php echo($fichier_image[$Pos+0]); ?> </TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2">&nbsp; <?php echo($fichier_image[$Pos+1]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+2]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+3]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+4]); ?> </FONT></TD> </TR> <TR> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+5]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+6]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+7]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+8]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+9]); ?> </FONT></TD> </TR> <TR> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+10]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+11]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+12]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+13]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+14]); ?> </FONT></TD> </TR> <TR> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+15]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+16]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+17]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+18]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+19]); ?> </FONT></TD> </TR> <TR> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+20]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+21]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+22]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+23]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+24]); ?> </FONT></TD> </TR> <TR> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+25]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+26]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+27]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+28]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+29]); ?> </FONT></TD> </TR> <TR> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+30]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+31]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+32]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+33]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+34]); ?> </FONT></TD> </TR> <TR> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+35]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+36]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+37]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+38]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+39]); ?> </FONT></TD> </TR> <TR> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+40]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+41]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+42]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+43]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+44]); ?> </FONT></TD> </TR> <TR> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+45]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+46]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+47]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+48]); ?> </FONT></TD> <TD ALIGN=CENTER VALIGN=BOTTOM><FONT face="Verdana, Arial, Helvetica, Sans-Serif" size="-2"> <?php echo($fichier_image[$Pos+49]); ?> </FONT></TD> </TR> </TABLE></TD> </TR> <TR> <TD colspan="2" ALIGN=CENTER><BR> <FONT face="Verdana, Arial, Helvetica, Sans-Serif"> <B>Page:</B>&nbsp;<strong>&nbsp;</strong></FONT> <strong><FONT color="#FF0000" face="Verdana, Arial, Helvetica, Sans-Serif"> <?php $A_afficher=""; for($j=1;$j<=$NB_pages;$j++) { if ($j==$N_page) { $A_afficher=$A_afficher.' '.$j; } else { $A_afficher=$A_afficher.' '.'<a href="'.$Page_courante.'?nom_meeting='.$nom_meeting.'&dirname='.$dirname.'&N_page='.$j.'">'.$j.'</a>'; } } echo($A_afficher); ?> </font></strong></TD> </TR> <TR> <TD colspan="2" ALIGN=CENTER> <TR> <TD colspan="2" ALIGN=CENTER><b><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><strong> </strong></font></b></TD> </TR> <TR> <TD ALIGN=CENTER> <div align="left"><strong> <?php $j=$N_page-1; if($N_page==1) $A_afficher='<TD ALIGN=CENTER><div align="left"><a href="'.$Menu_path.'"><img src=../../commun/back.gif border="0"></a></div></TD>'; else $A_afficher='<TD ALIGN=CENTER><div align="left"><a href="'.$Page_courante.'?nom_meeting='.$nom_meeting.'&dirname='.$dirname.'&N_page='.$j.'"><img src=../../commun/back.gif border="0"></a></div></TD>'; echo($A_afficher); ?> </strong></div></TD> <TD ALIGN=CENTER> <div align="right"><strong> <?php $k=$N_page+1; if($N_page==$NB_pages) $A_afficher=""; else $A_afficher='<TD ALIGN=CENTER><div align="left"><a href="'.$Page_courante.'?nom_meeting='.$nom_meeting.'&dirname='.$dirname.'&N_page='.$k.'"><img src= ../../commun/next.gif border="0"></a></div></TD>'; echo($A_afficher); ?> </strong></div></TD> </TR> <P> </TABLE> <div align="right"><br> Pictures &copy;<strong> <? echo($Copyright); ?> </strong></div> </div></td> </tr> </table> <p>&nbsp;</p> <p>&nbsp;</p> <? include("../../php/analytics.php"); ?> </BODY> </HTML>
je pense que c'est mieux, effectivement en le reparcourant, j'ai put voir pas mal de non sens de prog...c'etait mon premier script il y'a 3 ans :lol:

et je confirme que mes fonction étaient vraiment bof LOL

merci a vous pour vos critiques constructives. je vais reprendre mes scripts un par un pour les corriger.

y'a t'il d'autres bonnes régles à connaitres ?

par gipelo » 16 mars 2008, 20:49

Je viens de voir aussi une autre faille de possible dans la partie "je ne suis pas enregistré". Quand tu cliques sur le lien tu fais ceci : "http://corvetteonline.free.fr/Membres/i ... compte.php"

C'est un peu dangereux non ? imagine que dans ADR_BCK le hacker mette http://sa_source.
Suis je dans l'erreur ?
effectivement ce n'est pas top, mais normalement avec ça tu redirige uniquement vers la page contenur dans ADR_BCK donc normalement ce n'est pas bien mechant si le hackeur remplace la valeurà l'execussion cela le redirigera ailleur.

par Aureusms » 14 mars 2008, 15:29

Je viens de voir aussi une autre faille de possible dans la partie "je ne suis pas enregistré". Quand tu cliques sur le lien tu fais ceci : "http://corvetteonline.free.fr/Membres/i ... compte.php"

C'est un peu dangereux non ? imagine que dans ADR_BCK le hacker mette http://sa_source.
Suis je dans l'erreur ?

par Sékiltoyai » 14 mars 2008, 00:38

Sur les variables globales, il faut considérer le fait aussi que cela dénote une mauvaise conception. Cela implique que les fonctions n'ont pas été pensées pour faire ce qu'elles ont à faire mais bricolées ensuite pour gérer une variable que l'on n'avait pas prévu au début.

Ensuite, les variables globales ancrent tes fonctions dans leur contexte, elles ne pourront fonctionner que si tu as défini les variables que tu utilises, avec le même nom, ce qui limite la réutilisation des fonctions ainsi que l'utilisation de celles ci dans n'importe quelle page de ton script.

Classiquement, on met les fonctions dans un(des) fichier(s) à part et on les rend indépendantes de l'ensemble du script pour qu'elles puissent jouer pleinement leur rôle…

par zeus » 14 mars 2008, 00:13

En complément de ce qu'a annoncé Cyrano.
Quand on active les register_global, on donne l'ordre de préférence de récupération. Par défaut, c'est GPC pour GET-POST-COOKIE.

cela signifie que si tu attends une variable $test en POST, il suffit que le hacker appelle une url du genre http://tonsite/page.php?test=monhack pour outrepasser ta récupération.

Sinon, concernant les variables globales, c'est l'enfance de l'art que de demander l'exécution de ton script en lui passant les variables qu'on veut.
Immagine que ton script demande une variable globale $test, il suffit d'exécuter le code suivant pour hacker ton script :
$test = "je t'ai hacké"
include('tonscriptavecglobales.php');

par Cyrano » 13 mars 2008, 23:06

short open tag: c'est quoi et ou est le risque
Le risque de voir ton code PHP s'afficher tel quel dans ton navigateur si l'hébergeur a désactivé cette option : Donc il faut toujours préférer "<?php" à "<?"
register globals: c'est quoi et ou est le risque
Par défaut, cette option est désactivée dans php depuis la version 4.2. Le danger, c'est tout simplement de se faire pirater par l'envoi de valeurs sous forme de paramètres via l'url.
Si tu envoies dans l'url monsite.com/index.php?valeur=yxz tu pourras récupérer de deux manières :
-1- register_globals à on : simplement en appelant la variable $valeur.
Si un pirate trouve une variable qui peut lui permettre de se faufiler dans ton système, il enverra un paramètre ayant le nom de cette variable écrit à la main directement dans l'url.
-2- register_globals à off : en récupérant la variable dans $_GET['valeur'] : aucune des autres variables de ton code ne pourra être modifiée par envoi de code malicieux.

par gipelo » 13 mars 2008, 21:07

short open tag: c'est quoi et ou est le risque
register globals: c'est quoi et ou est le risque
variables globales: là je comprend pas le risque

par Sékiltoyai » 13 mars 2008, 14:06

Utilisation des short open tag, des register globals, et des variables globales à outrance, que du bonheur…
Je suis désolé, mais oui, il y a de très fortes chances que le problème vienne de ton script…

par gipelo » 13 mars 2008, 12:25

Les scripts sont tous maison le seul truc qui n'est pas developpé par mes soins c'est phpBB

pour le morceau de code que tu site, c'est en fait un script qui vas créer une miniature à partir d'une image dont le nom est passé en parametre ... et la page a qui je passe le nom de dossier affiche toutes les images de ce dernier.

comment régler à votre sens les risques de sécurité sur ces pages...sachant que je suis pas expert en securité :))

thumbgen.php

Code : Tout sélectionner

<? $image = ImageCreateFromJPEG($fichier); $width = imagesx($image) ; $height = imagesy($image) ; $new_width = 120; // largeur a definir $new_height = ($new_width * $height) / $width ; // hauteur proportionnelle $thumb = imagecreatetruecolor($new_width,$new_height); imagecopyresized($thumb,$image,0,0,0,0,$new_width,$new_height,$width,$height); //imagecopyresampled($thumb,$image,0,0,0,0,$new_width,$new_height,$width,$height); header("Content-type:image/jpeg"); imagejpeg($thumb); imagedestroy($image); imagedestroy($thumb); ?>
Page.php

Code : Tout sélectionner

<? include("../../header.php"); ?><? /*************************Variable de paramétrage***********************/ //$dirname="./"; //$Menu_path indique le chemin de retour //$Menu_path_texte indique le texte a afficher pour le lien chemin retour //$N_page: indique la page courante $parametre="info.php"; //nom du fichier qui contient les parametres supplementaires $NB_Images_Par_Page=50; $TT_Miniature="TN_"; //definition de l'entéte des miniatures $Fleche_Back="../../commun/back.gif"; $Fleche_Next="../../commun/next.gif"; /***********************************************************************/ /************************Définition des variables***********************/ $fichier_image=array (); // dossier qui vas contenir le nom des fichier jpeg $NB_Images=0; $NB_pages=0; // nombre de page total de l'album init a 0 $Page_courante=""; //variable qui contient l'adresse de la page courante $fichier_parametre=$dirname."/".$parametre; /***********************************************************************/ include($fichier_parametre); /********************************Fonction main***************************/ $CurPage=pathinfo($SCRIPT_FILENAME); // | obtention du nom de la page $Page_courante=$CurPage["basename"]; // | actuelle $Pos=50*($N_page-1); // détermine la position de base dans le tableau des images Init_Fonction_Image(); Define_NB_Pages(); /***********************************************************************/ /**********************Determine le nombre de page*********************/ function Define_NB_Pages() { global $NB_Images_Par_Page; global $NB_pages; global $fichier_image; $NB_Images=sizeof($fichier_image); $NB_pages=ceil($NB_Images/$NB_Images_Par_Page); } /***********************************************************************/ /**********************Determine la page ou doit revenir le diaporama*********************/ function ADR_retour() { global $Page_courante; global $N_page; global $dirname; $Adr_retour=$Page_courante."&N_page=$N_page"."&dirname=$dirname"; return $Adr_retour; } /**********************************************************************/ function images($position) { global $fichier_image; global $dirname; $Adr_retour=ADR_retour(); $image=$fichier_image[$position]; if ($image!="") {$fichier=$dirname."/".$image; echo "<a href=diaporama.php?Index=$position&Retour=$Adr_retour ><img src=\"thumbgen.php?fichier=$fichier\" border=\"0\"> /a>";} } /************************Détermine si le fichier est une miniature ou pas******************/ function is_miniature($nom_fichier) { global $TT_Miniature; $entete=explode($TT_Miniature,$nom_fichier); if ($entete[0]==$nom_fichier) $Is_miniature=false; else $Is_miniature=true; return $Is_miniature; } /***********************************************************************/ /************************Met les noms de fichier dans le tableau $fichier_image******************/ function Init_Fonction_Image () { global $fichier_image; global $dirname; $dh=opendir($dirname); while (gettype($file=readdir($dh))!=boolean) { $info_fichier=pathinfo($file); if ((($info_fichier["extension"]=="jpg") or ($info_fichier["extension"]=="JPG")) && is_miniature($file)==false) //si le fichier est un fichier jpeg et pas une miniature on le rajoute dans le tableau de liste des images { $fichier_image[]=$file; } } /***********************************************************************/ /************************Fonction retour******************/ function Get_Titre() { global $Type_Titre; global $Nom_meeting; if ($Type_Titre==1) echo "<img src=$Nom_meeting>"; else echo "$Nom_meeting"; } /*********************************************************/ /************************Gestion des fleches******************/ function Page_retour() { global $Menu_path; global $Menu_path_texte; $Menu_path="http://corvetteonline.free.fr/Photos/photos/$Menu_path"; if ($Menu_path!="") echo "<a href=\"$Menu_path\">$Menu_path_texte"; } /***********************************************************************/ /************************Gestion des fleches******************/ function Gest_Arrows($FCT) { global $NB_pages; global $N_page; global $nom_meeting; global $Page_courante; global $Menu_path; global $dirname; global $Fleche_Back; global $Fleche_Next; $A_afficher=""; $j=$N_page-1; $k=$N_page+1; if($FCT=="back") { $Picture_path=$Fleche_Back; if($N_page==1) $A_afficher='</a><TD ALIGN=CENTER><div align="left"><a href=\"$Menu_path\"></a><a href="'.$Menu_path.'"><img src='.$Picture_path.' border="0"></a></div></TD>'; else $A_afficher='<TD ALIGN=CENTER><div align="left"><a href="'.$Page_courante.'?nom_meeting='.$nom_meeting.'&dirname='.$dirname.'&N_page='.$j.'"><img src='.$Picture_path.' border="0"></a></div></TD>'; } if($FCT=="fwd") { $Picture_path=$Fleche_Next; if($N_page==$NB_pages) $A_afficher=""; else $A_afficher='<TD ALIGN=CENTER><div align="left"><a href="'.$Page_courante.'?nom_meeting='.$nom_meeting.'&dirname='.$dirname.'&N_page='.$k.'"><img src='.$Picture_path.' border="0"></a></div></TD>'; } echo($A_afficher); // <a href="file:///D|/DRTC2003/meetings/meetings.htm"><img src="file:///D|/DRTC2003/commun/back.gif" border="0"></a> //<TD ALIGN=CENTER> <div align="right"><a href="file:///D|/DRTC2003/meetings/2003/bourg/page_02.htm"><img src="file:///D|/DRTC2003/commun/next.gif" // /************************************************************/ /************************Gestion des pages******************/ function Determine_Page()global $NB_pages $N_page $nom_meeting $Page_courante $dirname; $A_afficher=""; for($j=1;$j><=$NB_pages;$j++) { if ($j==$N_page) { $A_afficher=$A_afficher.' '.$j; } else { $A_afficher=$A_afficher.' '.'</a><a href="'.$Page_courante.'?nom_meeting='.$nom_meeting.'&dirname='.$dirname.'&N_page='.$j.'">'.$j.'</a>'; } } echo($A_afficher); } } ?>

par icebreak » 13 mars 2008, 11:34

Ouais moi je vois que ça, un truc genre Faille PHP-NUKE.
Ou alors il a téléchargé directement un CMS fait pour le piratage.

Rien qu'en mattant le HTML y a des trucs de la sorte

Code : Tout sélectionner

./php/thumbgen.php?fichier=../Vosautos/Vosautos/195/ext1.jpg <a href="../../Photos/photos/page.php?N_page=1&dirname=Dousard07">
Pas très sécurisé ces appels direct au Fichiers... et répertoire.
A mon humble avis.

par mere-teresa » 13 mars 2008, 10:33

Utilises-tu un quelconque CMS ? ou un outil en PHP que tu n'as pas développé toi -même .?

par gipelo » 13 mars 2008, 09:40

changement de mot de passe réalisé depuis le boulot... même résultat.

je vais inclure un mouchard sur chaque fichier PHP de mon site

je vais recupérer les infos suivantes:

date-heure
page
parametre de la page
IP

avec cela je vais voir normalement si il y'a utilisation froduleuse de mes scripts

merci pour vos conseils et votre aide