на этом движке, и потому как сам подвергался этой злой "шутке",
считаю необходимым написать некоторые методы защиты. И пускай я сам только начинаю "расшаривать" в этой теме, но некоторыми вещами хочу поделиться. Все что Вы прочтете ниже не мое к сожалению и на авторство и "умника" я не рассчитываю. Возможно для кого-то это будет не ново, но надеюсь найдутся те для кого материал будет полезен.
1.Крыса внитри !
Пожалуй самый распрастраненный метод. Способ защиты:
1.1. Открываем файл engine/inc/files.php и находим:
Цитата
заменяем на:
$serverfile = trim( htmlspecialchars( strip_tags( $_POST['serverfile'] ) ) ); |
Цитата
1.2. Открываем файл engine/classes/thumb.class.php и находим:
if ($member_id['user_group'] == 1) $serverfile = trim( htmlspecialchars( strip_tags( $_POST['serverfile'] ) ) ); else $serverfile = ''; if ( $serverfile != '' ) { $serverfile = str_replace( "\\", "/", $serverfile ); $serverfile = str_replace( "..", "", $serverfile ); $serverfile = str_replace( "/", "", $serverfile ); $serverfile_arr = explode( ".", $serverfile ); $type = totranslit( end( $serverfile_arr ) ); $curr_key = key( $serverfile_arr ); unset( $serverfile_arr[$curr_key] ); if ( in_array( strtolower( $type ), $allowed_files ) ) $serverfile = totranslit( implode( ".", $serverfile_arr ) ) . "." . $type; else $serverfile = ''; } if( $serverfile == ".htaccess") die("Hacking attempt!"); |
Цитата
добавляем выше этой строки:
$this->img['des'] = imagecreatetruecolor( $this->img['lebar_thumb'], $this->img['tinggi_thumb'] ); |
Цитата
2.Шелл.
Для начало нам нужно запретить работу php в тех папках в которые по умолчанию возможно залить файлы, картинки, видео, музыку и.т.д А именно папки uploads и templates в них нужно добавить файл .htacces с прописанным параметром. Код:
if ($this->img['lebar_thumb'] < 1 ) $this->img['lebar_thumb'] = 1; if ($this->img['tinggi_thumb'] < 1 ) $this->img['tinggi_thumb'] = 1; |
Для начало нам нужно запретить работу php в тех папках в которые по умолчанию возможно залить файлы, картинки, видео, музыку и.т.д А именно папки uploads и templates в них нужно добавить файл .htacces с прописанным параметром. Код:
Цитата
Вот и всё теперь шел залить нельзя!
Но если им удастся получить доступ к вашей админ панели, и они попытается разрешить заливку php скриптов. Для подстраховки можно сделать так. Открыть: engine/inc/files.php и найти там Код:
Order allow,deny Deny from all </FilesMatch> |
Вот и всё теперь шел залить нельзя!
Но если им удастся получить доступ к вашей админ панели, и они попытается разрешить заливку php скриптов. Для подстраховки можно сделать так. Открыть: engine/inc/files.php и найти там Код:
Цитата
Найденное заменяем на код:
$allowed_extensions = array ("gif", "jpg", "png", "jpe", "jpeg" ); $allowed_video = array ("avi", "mp4", "wmv", "mpg", "flv", "mp3", "swf", "m4v", "m4a", "mov", "3gp", "f4v" ); $allowed_files = explode( ',', strtolower( $config['files_type'] ) ); $img_result_th = ""; $img_result = ""; |
Цитата
После этого вы очень сильно усложните заливку шелла на сайт, и сможете наконец спать спокойно!
3.Взлом через модуль облако тегов.
У нас два варианта, первый, по HTML, второй через XSS. С помощью данного метода мы можем получить сессию админа, вытащить куки, успешно залогиньться и сотворить бяку противнику. Код взлома не привожу специально дабы им не воспользовались в корыстных целях. Пути решения проблемы: вариант от -=BlackSmoke=- : заинглудь в файл класс парсинга входящих данных(parse.class.php) и с помощью него сделай фильтрацию. Что-то типа:
$allowed_extensions = array ("gif", "jpg", "png", "jpe", "jpeg" ); $allowed_video = array ("avi", "mp4", "wmv", "mpg", "flv", "mp3", "swf", "m4v", "m4a", "mov", "3gp", "f4v" ); $allow_conf = str_replace("php",md5(time() - rand(30,60)),strtolower( $config['files_type'] )); $allowed_files = explode( ',', $allow_conf ); $img_result_th = ""; $img_result = ""; |
3.Взлом через модуль облако тегов.
У нас два варианта, первый, по HTML, второй через XSS. С помощью данного метода мы можем получить сессию админа, вытащить куки, успешно залогиньться и сотворить бяку противнику. Код взлома не привожу специально дабы им не воспользовались в корыстных целях. Пути решения проблемы: вариант от -=BlackSmoke=- : заинглудь в файл класс парсинга входящих данных(parse.class.php) и с помощью него сделай фильтрацию. Что-то типа:
Цитата
Топорный метод от xex:
а еще можно и нужно в настройках админки иметь такой расклад:
Метод авторизации в админпанели = Расширенный метод
+ для надежности и большей параноидальности
Контроль изменения IP адреса = Высокий уровень
Сбрасывать ключ авторизации при каждом входе? = Да
Ну вот вроде и все что я смог найти на серче. Если кому либо известны другие дырки и "таблетка" от этого прошу выкладывать тут. Также буду рад дополнениям к вышесказанному. Ссылки на первоисточник не ставил дабы не было видно сами методы взлома.
Подведем небольшой итог.
В первую очередь из админки сайта меняем admin.php на абракадабра.php, идем на хост (как Вам удобно - я пользуюсь ftp хостера) и меняем admin.php на абракадабра.php. После этого меняем пароли ко входу в админку, к ftp и к базам данных (т.к. у меня даже базу СПЕРЛИ, лишь весомые доказательства того что я админ, + скрин со статистики помогли восстановить). Всегда очищайте перед выходом с админ панели кеш. Если у Вас еще нет бекапа - создайте, и обновляйте его с некоторой периодичностью. Также не помешает изменить файл dbconfig.php на кадабра.php и заменить имя там, где происходит его подключение. Сам пока на такое не решился т.к. не могу найти путь где он лежит (мало времени). Для облегчения поиска пользуйтесь Ctrl+F в окне вводим $dbconfig и там где он найдется меняем на то что придумали.
Надеюсь кому-то все это пригодится! Дополняйте если есть что сказать!
$tags = $db->safesql( htmlspecialchars( strip_tags( stripslashes( trim( $_GET['tagcloud'] ) ) ), ENT_QUOTES ) ); |
а еще можно и нужно в настройках админки иметь такой расклад:
Метод авторизации в админпанели = Расширенный метод
+ для надежности и большей параноидальности
Контроль изменения IP адреса = Высокий уровень
Сбрасывать ключ авторизации при каждом входе? = Да
Ну вот вроде и все что я смог найти на серче. Если кому либо известны другие дырки и "таблетка" от этого прошу выкладывать тут. Также буду рад дополнениям к вышесказанному. Ссылки на первоисточник не ставил дабы не было видно сами методы взлома.
Подведем небольшой итог.
В первую очередь из админки сайта меняем admin.php на абракадабра.php, идем на хост (как Вам удобно - я пользуюсь ftp хостера) и меняем admin.php на абракадабра.php. После этого меняем пароли ко входу в админку, к ftp и к базам данных (т.к. у меня даже базу СПЕРЛИ, лишь весомые доказательства того что я админ, + скрин со статистики помогли восстановить). Всегда очищайте перед выходом с админ панели кеш. Если у Вас еще нет бекапа - создайте, и обновляйте его с некоторой периодичностью. Также не помешает изменить файл dbconfig.php на кадабра.php и заменить имя там, где происходит его подключение. Сам пока на такое не решился т.к. не могу найти путь где он лежит (мало времени). Для облегчения поиска пользуйтесь Ctrl+F в окне вводим $dbconfig и там где он найдется меняем на то что придумали.
Надеюсь кому-то все это пригодится! Дополняйте если есть что сказать!
Deny from all
</FilesMatch>
И че это за код?
читайте выше это не я писал, но взял с "хороших" форумов и меня нет причин не доверять этой информации.