lechtimi Posté 5 Avril 2008 Posté 5 Avril 2008 Bonjour Mon site à été piraté Le hacker est passé par .../admin/config/templates_news/ et là il injecte une ligne de commande (<div id="stats" style="visibility:hidden;" width='1' height='1'><iframe src ="http://www......com" frameborder='0' height='1' width='1'></iframe></div> <script type="text/javascript" src="http://...."></script>) J'ais beau supprimé cette ligne, mon site est toujour redirigé sur un autre site ! J'ais beau cherché dans d'autre fichiers je ne retrouve pas cette ligne autre part, qu'a t'il put faire d'autre ? ou comment procéder Comme je n'ais absolument pas de connaissance dans ce domaine j'aurais besoin d'aide. Merci
Sarc Posté 5 Avril 2008 Posté 5 Avril 2008 Bonjour, Regarde dans le .htaccess, c'est un autre endroit où il peut y avoir une redirection. Sinon, on aura du mal à t'aider, sans l'adresse de ton site... S'il redirige vers un site dangereux ou interdit par les lois françaises, ne donne l'adresse qu'en privé. Tu as bien uploadé la page corrigée sur ton serveur ? Ie sans la ligne avec l'iframe ? Bloque le javascript sur ton navigateur et va sur ton site pour lire le code source et trouver un problème.
lechtimi Posté 5 Avril 2008 Auteur Posté 5 Avril 2008 Salut Je crois que j'ais trouvé la solution En supprimant la ligne et en vidant le cache de .../admin/config/cache cela fonctionne Merci
Dadou Posté 5 Avril 2008 Posté 5 Avril 2008 Oui mais cela ne suffit pas, tu dois absolument déterminer la faille de sécurité qu'il a utiliser pour la combler, sinon il y a des chances qu'il recommence
lechtimi Posté 6 Avril 2008 Auteur Posté 6 Avril 2008 Salut Tu avais raison Doudou il n'a pas tardé à recommencer. J'ai corrigé une faille de sécurité connu pour ce script, mais malheuresement c'est pas celle là. En plus j'ais essayé d'installer la nouvelle version du script et d'importer mes annonces mais ça ne marche pas ( il y a des fichiers dans la derniére version qui ne sont pas dans l'ancienne! Et j'ais plus de 10000 annonces que je ne voudrais pas perdre.
lechtimi Posté 7 Avril 2008 Auteur Posté 7 Avril 2008 J'ais cru lire quelque part qu'il était possible de voir où il était passé avec les logs ? quelqu'un pourrait il m'expliquer. Autre chose j'ais trouvé ceci: Description : ajann a découvert une vulnérabilité dans PHP Classifieds, qui pourrait être exploitée par des personnes malintentionnées pour conduire des attaques SQL. L'entrée passée au paramètre "user_id" dans detail.php n'est pas correctement filtrée avant d'être utilisée dans une requête SQL. Cela pourrait être exploité pour manipuler les interrogations SQL en injectant du code SQL arbitraire. La vulnérabilité est confirmée en version 7.1b. Les autres versions pourraient également être affectées. Solutions : Editez le code source pour s'assurer que l'entrée est correctement filtrée. Voici mon detail php et comment filtrée l'entrée. Merci CODE <?$lSearchEngineArray=array("Google", "Fast", "Slurp", "Ink", "Atomz", "Scooter", "Crawler", "MSNbot", "Poodle", "Genius"); $lIsSearchE=0; foreach($lSearchEngineArray as $key => $val) if(strstr($_SERVER['HTTP_USER_AGENT'], $val)) $lIsSearchE++; if($lIsSearchE==0) session_start(); include_once("admin/inc.php"); $ad_id=round(getParam("id","")); $lPrint=getParam("print",""); // If setting is not set, use these defaults... if (!$set_outer_color) { $set_outer_color = "#A9B8D1"; } if (!$set_inner_color) { $set_inner_color = "#FFFFFF"; } if (!$set_descr_color) { $set_descr_color = "#FFFFFF"; } if (!isset($set_descr_cell)) { $set_descr_cell = 10; } if (isset($preview)) { $ad_id = $preview; $validation = 0; } if (!$ad_id) criticalError(LA_ERROR,LA_ERROR_NO_ID); if ($validation == 1 && getParam("preview","")=="") { $val_string = " AND ad_is_validated = 1"; } else { $val_string = ""; } $sql_links = "select * from $ads_tbl, $cat_tbl, $usr_tbl where cat_id=ad_cat_id AND user_id=ad_owner AND ad_id=$ad_id $val_string"; $result_from_ad = q($sql_links); $row_from_ad=mysql_fetch_array($result_from_ad); if (mysql_num_rows($result_from_ad) == 0) criticalError(LA_AD_REMOVED_CAPTION,formatString(LA_AD_REMOVED_CONTENT,array("http://$url"))); $sitetitle = $row_from_ad["ad_title"]; $ad_description = $row_from_ad["ad_description"]; $userid = $row_from_ad["user_id"]; $ad_date = $row_from_ad["ad_date"]; $ad_views = $row_from_ad["ad_views"]; $ad_votes = $row_from_ad["ad_votes"]; $ad_voters = $row_from_ad["ad_voters"]; $ad_totalscore = $row_from_ad["ad_totalscore"]; $votes = $row_from_ad["user_votes"]; $voters = $row_from_ad["user_voters"]; $name = $row_from_ad["user_name"]; $email = $row_from_ad["user_email"]; $catname = $row_from_ad["cat_name"]; $catid = $row_from_ad["cat_id"]; $vendor_url = $row_from_ad["user_vendor_url"]; $vendor_homepage = $row_from_ad["user_vendor_homepage"]; $sold = $row_from_ad["ad_is_sold"]; $cattpl = $row_from_ad["cat_tpl"]; $datestamp = $row_from_ad["ad_date"]; $ad_has_picture = $row_from_ad["ad_has_picture"]; $is_vendor = $row_from_ad["user_is_vendor"]; $hide_email = $row_from_ad["user_hide_email"]; $img_stored = $row_from_ad["img_stored"]; $user_id = $row_from_ad["user_id"]; $expire_days = $row_from_ad["ad_expires_after_days"]; $ad_expires=formatDateShort($row_from_ad["ad_date_expire"]); $timestamp_expire_date=$row_from_ad["ad_date_expire"]; $ad_added=formatDateShort($row_from_ad["ad_date"]); $pagename= $sitename . " - " . $sitetitle; $meta_desc=htmlspecialchars(dotString($ad_description,150)); if (empty($lPrint)) include_once("header_inc.php"); else { include ($full_path_to_public_program . "/admin/classes/TplLoad.php"); echo "<script language='javascript'>window.print()</script>"; echo "<p><a href='detail.php?id=$ad_id'><h2>$la_p</h2></a></p>"; } $tplDetail=new TplLoad; $tplDetail->assign("isLoggedIn",$_SESSION["valid_user"]); $tplDetail->assign("set_outer_color",$set_outer_color); $tplDetail->assign("set_inner_color",$set_inner_color); $tplDetail->assign("set_descr_color",$set_descr_color); $tplDetail->assign("set_descr_cell",$set_descr_cell); $tplDetail->assign("id_ad","$ad_id"); $tplDetail->assign("ad_id","$ad_id"); $tplDetail->assign("ad_title","$sitetitle"); $tplDetail->assign("ad_added","$ad_added"); $tplDetail->assign("ad_hits","$ad_views"); $tplDetail->assign("ad_expire","$ad_expires"); $tplDetail->assign("ad_catid","$catid"); $tplDetail->assign("ad_username","$name"); $tplDetail->assign("ad_email","$email"); $tplDetail->assign("banner","$lBanner"); if ($set_nl2br) $ad_description=nl2br($ad_description); $tplDetail->assign("ad_description","$ad_description"); $tplDetail->assign("user_id","$user_id"); $tplDetail->assign("num_days",getHowManyDaysRemains($timestamp_expire_date,time())); $tplDetail->assign("LA_REMOVE_FAV",urldecode(LA_REMOVE_FAV)); $tplDetail->assign("LA_ADD_FAV",urldecode(LA_ADD_FAV)); $tplDetail->assign("set_image_program",$set_image_program); // Print out linked title writeLinkedTitle(getCategoryId($ad_id)); if ($set_detail_login_need==1) check_valid_user(""); if ($hide_email==1) $tplDetail->assign("hide_email",1); else $tplDetail->assign("email","$email"); // Member Rating if ($set_vote_on_member) $tplDetail->assign("rate_member",$set_vote_on_member); if ($set_ratemem_login_need) $tplDetail->assign("rate_member_requires_login","$set_ratemem_login_need"); if ($voters > 0) $votes = round($votes/$voters, 1); else { $votes=0; $voters=0; } $tplDetail->assign("sold","$sold"); $tplDetail->assign("ad_member_votes","$votes"); $tplDetail->assign("ad_member_voters","$voters"); // Ad Rating if ($set_rate) $tplDetail->assign("rate_ad","$set_rate"); if ($set_rate_ad_require_member) $tplDetail->assign("rate_ad_requires_login","$set_rate_ad_require_member"); // Get image rating $lStr=getStarRating($ad_totalscore); $tplDetail->assign("ad_vote_img_result","$lStr"); $tplDetail->assign("ad_ad_votes","$ad_votes"); $tplDetail->assign("ad_ad_voters","$ad_voters"); $tplDetail->assign("ad_totalscore","$ad_totalscore"); // Code for prev next result if ($sold == 1) $tplDetail->assign("isSold",1); if ($vendor_url AND $set_vendor AND $is_vendor) $tplDetail->assign("vendor","<a href='$vendor_homepage' target='new'><img src='$vendor_url' border='0'></a>"); $sql_prevad_id = "select ad_id from $ads_tbl, $cat_tbl, $usr_tbl where cat_id=ad_cat_id AND ad_owner=user_id AND ad_id < $ad_id AND cat_id = $catid $val_string order by ad_id desc limit 1"; $result_prevad_id = q($sql_prevad_id); $row_prev = mysql_fetch_array($result_prevad_id); $prevad_id = $row_prev["ad_id"]; $sql_nextad_id = "select ad_id from $ads_tbl, $cat_tbl, $usr_tbl where cat_id=ad_cat_id AND ad_owner=user_id AND ad_id > $ad_id AND cat_id = $catid $val_string order by ad_id asc limit 1"; $result_nextad_id = q($sql_nextad_id); $row_next = mysql_fetch_array($result_nextad_id); $nextad_id = $row_next["ad_id"]; // PREV NEXT AD if ($prevad_id) { $str_nav.="<a href='detail.php?id=$prevad_id&catid=$catid'>"; $str_nav.="<img src='layout_images/arrow-back.gif' border='0' alt='' /> ".LA_P."</a>"; $tplDetail->assign("prev_link","detail.php?id=$prevad_id&catid=$catid"); } $str_nav.=" "; if ($nextad_id) { $str_nav.="<a href='detail.php?id=$nextad_id&catid=$catid'>"; $str_nav.=LA_N . " <img src='layout_images/arrow-forw.gif' border='0' alt='' /></a>"; $tplDetail->assign("next_link","detail.php?id=$nextad_id&catid=$catid"); } $tplDetail->assign("navigation","$str_nav"); if (getParam("contact","")) include "contact.php"; if (getParam("tellafriend","")) include "tellafriend.php"; //print_r($row_from_ad); $lQuestions=getDbValuesBasedOnQuestions($cattpl,1,$row_from_ad,$set_seperator); $tplDetail->assign("ads",$lQuestions[$ad_id]); $lQuestions=getDbValuesBasedOnQuestions($cattpl,2,$row_from_ad,$set_seperator); $tplDetail->assign("users",$lQuestions[$ad_id]); if ($set_favourites AND isset($_SESSION["valid_user"])) { $sql = "select fid from $fav_tbl where f_adid=$ad_id AND f_user_id = ".$_SESSION["valid_user"]; $r = mysql_query($sql); $number = mysql_num_rows($r); if ($number) $tplDetail->assign("fav_remove_link",1); else $tplDetail->assign("fav_add_link",1); } $query = "select * from $vid_tbl where video_adid=$ad_id"; $sql_result = q($query); while ($row=mysql_fetch_array($sql_result)) { $id = $row["video_id"]; $filename_stored = $row["video_file"]; $array = split("\.",$filename_stored); $last=count($array)-1; $ext=$array[$last]; $videoArray[$i]["file"]=$filename_stored; $videoArray[$i]["id"]=$id; $videoArray[$i]["ext"]=strtolower($ext); $i++; } $tplDetail->assign("video_list",$videoArray); $query = "select * from $doc_tbl where f_adid=$ad_id order by f_id desc"; $sql_result_doc = q ($query); $i=0; while ($row=mysql_fetch_array($sql_result_doc)) { $id = $row["f_id"]; $filetype = $row["filetype"]; $filename = $row["f_file"]; $fArray[$i]["id"] = $id; $fArray[$i]["name"] = $filename; $lSize=filesize("images/docs/" . $filename); $fArray[$i]["size"] = round($lSize/1024); $lDisplay=ereg_replace($ad_id . "_","",$filename); $fArray[$i]["display_name"] = $lDisplay; $lExtArray=split("\.",$filename); $lExt=end($lExtArray); $fArray[$i]["ext"] = strtolower($lExt); $i++; } $tplDetail->assign("doc_list", $fArray); $query = "select id,filename from $pic_tbl where pic_ad_id=$ad_id"; $sql_result = q($query); $num_ad_has_pictures = mysql_num_rows($sql_result); for ($i=0; $i<$num_ad_has_pictures; $i++) { $row = mysql_fetch_array($sql_result); $id = $row["id"]; $filename_stored = $row["filename"]; if ($set_image_program==0) { $lSizeArray=setImageSize($filename_stored,getManualSize("small"),0); $imgArray[$i]["w"]=$lSizeArray[0]; $imgArray[$i]["h"]=$lSizeArray[1]; } else $filename_stored=ereg_replace("tmb2","tmb1",$filename_stored); $imgArray[$i]["file"]=$filename_stored; $imgArray[$i]["id"]=$id; $imgArray[$i]["nr"]=$i; } if ($set_image_program==0) $tplDetail->assign("image_max",getManualSize("small")); $tplDetail->assign("image_list",$imgArray); $tplDetail->assign("set_slideshow",$set_slideShow); $tplDetail->assign("set_slideShow_sec",$set_slideShow_sec*1000); $tplDetail->assign("set_slideShow_count_from",$set_slideShow_sec); $tplDetail->assign("num_pictures",$num_ad_has_pictures); $tplDetail->assign("show_still",getParam("show_still","")); $s = "UPDATE $ads_tbl set ad_views=ad_views+1 where ad_id=$ad_id"; $result1=q($s); $tplDetail->display("detail.tpl"); if (empty($lPrint)) include_once("footer_inc.php"); else echo formatString("<center>".LA_PRINT_CLEAN."</center>", array(formatDate(date("Ymd")),date("H:m"),"http://$url/detail.php?id=$ad_id")); ?>
gorderson Posté 15 Avril 2008 Posté 15 Avril 2008 Bonjour ! C'est quoi comme script qui bug ? Merci !
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant