la plupart du temps, le ou les hacker upload et installe sur le serveur un WHM et se serve du compte hacké pour envoyer du spam.
Quelques fois c'est le fichier index.php qui est écrasé par un index.php contenant la carte de visite du hacker
Coté log, les hackers ne laisse aucune trace, j'ai même payé mon hébergeur pour avoir un audit de sécurité et il n'a rien trouvé.
Je découvre ou soupsone qu'un site est hacké quand la bande passant est anormalement élevé ou quand mon hébergeur m'envoie un avis que leur anti-virus a détecté des fichier malicieux
Précision sur mes 40 sites, c'est 40 sites web différent, sur des compte d'hébergement individuel a chacun où jai chaque fois utilisé le même cms «home made»
Mon hébergement est mutualisé.
Là où je crois qu'il peut y avoir une ou des failles.
- mon éditeur wysiwyg que j'ai mis dans mon formulaire
- ma fonction de upload de fichier
- injection sql, cependant, je ni connais rien en injection sql, j'ai lu sur le net que c'est une façon que les hacker peuvent utiliser
Voici mon code de upload de fichier au cas où tu y verrai une faille:
function upload_image($id, $http_image, $table, $sous_rep, $pathImg, $url_racine, $clef_prim)
{
$_FILES["images"]['name']=$http_image;
if($_FILES["images"]['name'] <> "" && $_FILES["images"]["type"]=="image/pjpeg" || $_FILES["images"]["type"]=="image/jpeg")
{
$extptmp = explode(".",$_FILES["images"]['name']);
$_FILES["images"]['name'] = $id.".".$extptmp[1];
if(is_uploaded_file($_FILES["images"]['tmp_name']))
{
//---------------------------------------------------------------------------------------
move_uploaded_file($_FILES["images"]['tmp_name'], "".$pathImg.$sous_rep."/tmp/".$_FILES["images"]['name']."");
$size = getimagesize("".$pathImg.$sous_rep."/tmp/".$_FILES["images"]['name']."") or die("getimagesize erreur 35");
$newwidth=resize_images(1000, 1000, "".$url_racine.$sous_rep."/tmp/".$_FILES["images"]['name']."") or die("rezine width erreur");
$src_img = imagecreatefromjpeg("".$pathImg.$sous_rep."/tmp/".$_FILES["images"]['name']."") or die("imagecreatefromjpg erreur");
$dst_img = imagecreatetruecolor ($newwidth[0],$newwidth[1]) or die("createtruecolor erreur 40");
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $newwidth[0],$newwidth[1], $size[0], $size[1]) or die("imagecopyresampled erreur"); // la fonction qui redimensionne les photos
imagejpeg($dst_img, "".$pathImg.$sous_rep."/".$_FILES["images"]['name']."", 60) or die("imagejpg erreur179");
imagedestroy($src_img) or die("destroy src_img erreur");
imagedestroy($dst_img) or die("destroy dest_img erreur");
//-----------------------------------------------------------------------------------------
$sqlup = "UPDATE $table SET image=\"".$_FILES["images"]['name']."\" where $clef_prim=".$id."";
$rsup = mysql_query($sqlup) or die ($sqlup);
//mysql_close($conn);
chmod("".$pathImg.$sous_rep."/".$_FILES["images"]['name']."", 0644);
////chown("".$pathImg."photos/img_prod/".$_FILES["images"]['name']."", village);
//--------------------------------------------------------------------------------------------
$size = getimagesize("".$pathImg.$sous_rep."/".$_FILES["images"]['name']."") or die("getimagesize erreur 56");
$newwidth=resize_images(200, 200, "".$url_racine.$sous_rep."/".$_FILES["images"]['name']."") or die("rezine width erreur");
$src_img = imagecreatefromjpeg("".$pathImg.$sous_rep."/".$_FILES["images"]['name']."") or die("imagecreatefromjpg erreur");
$dst_img = imagecreatetruecolor ($newwidth[0],$newwidth[1]) or die("createtruecolor erreur 61");
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $newwidth[0],$newwidth[1], $size[0], $size[1]) or die("imagecopyresampled erreur"); // la fonction qui redimensionne les photos
imagejpeg($dst_img, "".$pathImg.$sous_rep."/icones/".$_FILES["images"]['name']."", 60) or die("imagejpg erreur199");
imagedestroy($src_img) or die("destroy src_img erreur");
imagedestroy($dst_img) or die("destroy dest_img erreur");
//Creation des icones
$delete_file=unlink("".$pathImg.$sous_rep."/tmp/".$_FILES["images"]['name']."");
}
}
///Load ici si image pas= .jpg
elseif($_FILES["images"]['name'] <> "")
{
$extptmp = explode(".",$_FILES["images"]['name']);
$_FILES["images"]['name'] = $id.".".$extptmp[1];
if(is_uploaded_file($_FILES["images"]['tmp_name']))
{
move_uploaded_file($_FILES["images"]['tmp_name'], "".$pathImg.$sous_rep."/".$_FILES["images"]['name']."");
copy("".$pathImg.$sous_rep."/".$_FILES["images"]['name']."", "".$pathImg.$sous_rep."/icones/".$_FILES["images"]['name']."");
$sqlup = "UPDATE $table SET image=\"".$_FILES["images"]['name']."\" where $clef_prim=".$id."";
$rsup = mysql_query($sqlup) or die ($sqlup);
chmod("".$pathImg.$sous_rep."/".$_FILES["images"]['name']."", 0644);
}
}
}
function upload_fichier($id, $clef, $http_fichier, $table, $sous_rep, $pathImg)
{
$_FILES["fichier"]['name']=$http_fichier;
if($_FILES["fichier"]['name'] <> "")
{
$extptmp = explode(".",$_FILES["fichier"]['name']);
$_FILES["fichier"]['name'] = $id."_".$_FILES["fichier"]['name'];
//------------------------------------------------------------------
$car_speciaux = array( '#',' ','À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'È', 'É', 'Ê', 'Ë', 'è', 'é', 'ê', 'ë', 'Ì', 'Í', 'Î', 'Ï', 'ì', 'í', 'î', 'ï', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', 'Ù', 'Ú', 'Û', 'Ü', 'ù', 'ú', 'û', 'ü', 'ß', 'Ç', 'ç', 'Ð', 'ð', 'Ñ', 'ñ', 'Þ', 'þ', 'Ý' );
$car_normaux = array( '','_','A', 'A', 'A', 'A', 'A', 'A', 'A', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'E', 'E', 'E', 'E', 'e', 'e', 'e', 'e', 'I', 'I', 'I', 'I', 'i', 'i', 'i', 'i', 'O', 'O', 'O', 'O', 'O', 'O', 'o', 'o', 'o', 'o', 'o', 'o', 'U', 'U', 'U', 'U', 'u', 'u', 'u', 'u', 'B', 'C', 'c', 'D', 'd', 'N', 'n', 'P', 'p', 'Y' );
$_FILES["fichier"]['name'] = str_replace($car_speciaux, $car_normaux, utf8_encode($_FILES["fichier"]['name']));
//------------------------------------------------------------------
if(is_uploaded_file($_FILES["fichier"]['tmp_name']))
{
move_uploaded_file($_FILES["fichier"]['tmp_name'], "".$pathImg.$sous_rep."/".$_FILES["fichier"]['name']."");
$sqlup = "UPDATE ".$table." SET file=\"".$_FILES["fichier"]['name']."\" where ".$clef."=".$id."";
$rsup = mysql_query($sqlup) or die ($sqlup);
}
}
}