Joomla - не так все хорошо.

Блог им. dreamhunter
Недавно столкнулся с использованием сего чуда. Я всегда люблю узнать что-то новое, потому с радостью окунулся. Окунулся не то слово.

Статью по самой джумле я может быть напишу позже. «Порадовал» меня вот какой случай…

Если кто не знает, сама джумла — это движок для сайтов, на который можно подключить все что угодно. От обилия шаблонов, свистелок и перделок в глазах рябит.
Первым делом я (естественно) искал шаблон. Скачал несколько вариантов и задействовал который более понравился. Далее (как водится) я его допиливал… Тут обычная рутина. Допиливать приходится все бесплатное.
И тут я почувствовал неладное. На сайте вылезли скрытые блоки с рекламой. Для не знающих: Тема в том, что проблем нет, пока вы не попытаетесь «засветить» свой сайт в поисковых системах. А те, не смотря на указанные вами дескрипторы и метатеги, могут показать любую информацию на странице, в том числе и информацию, содержащуюся в скрытых блоках.
Конечно же инъекцию я нашел и убил сразу. Потом я нашел сайт, откуда оно взялось и решил восстановить справедливость — написать хотя бы на тематическом русском форуме о нехорошей деятельности.

Вот оригинал поста:
Здравствуйте товарищи! Хочу предупредить вас о нехорошей деятельности этого ресурса. Она хоть и не вредоносна, но может попортить вам кровь очень сильно.
Суть:
1) выкачиваем любой архив шаблона с сайта joomla3x.ru
2) Распаковываем
3) Открываем в корне index.php
4) Находим инъекцию <?php require_once(dirname(__FILE__) .'/css/system.php'); ?>
5) Переходим в каталог css, открываем system.php — видим непонятный код в одну строчку.
6) Разбиваем на строки и комментируем условия и лишний мусор. Получаем что то типа:
<?php
#$app=JFactory::getApplication();
#$option5=$app->input->getCmd('option','');
#$view5=$app->input->getCmd('view','');
#$layout5=$app->input->getCmd('layout','');
#$menu5=$app->getMenu();
#if(($menu5->getActive()==$menu5->getDefault())||($view5=='featured')) {
echo base64_decode('PGRpdiBzdHlsZT0iaGVpZ2h0OiA0cHg7IG92ZXJmbG93OiBoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7Ij48c3BhbiBzdHlsZT0ibGluZS1oZWlnaHQ6MjBweDsiPtCj0YDQvtC60Lgg0L/QviBKb2
#}
#if(($option5=='com_content')&&($view5=='category')&&($layout5!=='blog')) {
echo base64_decode('PGRpdiBzdHlsZT0iaGVpZ2h0OiA0cHg7IG92ZXJmbG93OiBoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7Ij48c3BhbiBzdHlsZT0ibGluZS1oZWlnaHQ6MjBweDsiPtCl0L7RgNC+0YjQuNC5INGB0L
#}
#if(($option5=='com_content')&&($view5=='article')){
echo base64_decode('PGRpdiBzdHlsZT0iaGVpZ2h0OiA0cHg7IG92ZXJmbG93OiBoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7Ij48c3BhbiBzdHlsZT0ibGluZS1oZWlnaHQ6MjBweDsiPtCo0LDQsdC70L7QvdGLIEpvb2
#}
#if(($option5=='com_content')&&($layout5=='blog')){
echo base64_decode('PGRpdiBzdHlsZT0iaGVpZ2h0OiA0cHg7IG92ZXJmbG93OiBoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7Ij48c3BhbiBzdHlsZT0ibGluZS1oZWlnaHQ6MjBweDsiPjxhIGhyZWY9Imh0dHA6Ly93d3
#}
#if(($option5=='com_content')&&($layout5=='default')){
echo base64_decode('PGRpdiBzdHlsZT0iaGVpZ2h0OiA0cHg7IG92ZXJmbG93OiBoaWRkZW47cG9zaXRpb246YWJzb2x1dGU7Ij48c3BhbiBzdHlsZT0ibGluZS1oZWlnaHQ6MjBweDsiPiDQqNCw0LHQu9C+0L3RiyDQtN
#}
?>

6) выполняем $ php system.php и получаем вот такое содержимое, которое отображается в скрытых блоках вашего сайта.
# php system.php.old
<div style="height: 4px; overflow: hidden;position:absolute;"><span style="line-height:20px;">Уроки по Joomla 3 можно найти здесь: <a href="http://joomla3x.ru/">http://joomla3x.ru/</a></span></div>
<div style="height: 4px; overflow: hidden;position:absolute;"><span style="line-height:20px;">Хороший сайт о Joomla 3: <a href="http://joomla3x.ru/">http://joomla3x.ru/</a>.Много расширений  и шаблонов Joomla</span></div>
<div style="height: 4px; overflow: hidden;position:absolute;"><span style="line-height:20px;">Шаблоны Joomla 3 здесь: <a href="http://www.joomla3x.ru/joomla3-templates.html">http://www.joomla3x.ru/joomla3-templates.html</a></span></div>
<div style="height: 4px; overflow: hidden;position:absolute;"><span style="line-height:20px;"><a href="http://www.joomla3x.ru/joomla3-templates.html">http://www.joomla3x.ru/joomla3-templates.html</a> - joomla 3 шаблоны</span></div>
<div style="height: 4px; overflow: hidden;position:absolute;"><span style="line-height:20px;"> Шаблоны для Joomla 3<a href="http://www.joomla3x.ru/joomla3-templates.html">здесь</a></span></div>


МОЛОДЦЫ РЕБЯТКИ!!! Вопрос только: а вы спросили разрешения на размещение подобной рекламы на сайтах пользователей?
Я скачал и проверил несколько шаблонов с этого сайта — все заражены.

Как вылечить?
1) Удалить инъекцию из index.php (см выше)
2) Удалить/переименовать css/system.php

Рекоммендации
Поместить этот ресурс в самые черные списки, т.к. не известно, какие гадости они еще могут начать делать.
Качать компоненты только с официальных или доверенных сайтов.
Проводить инспекцию модулей.

Однако, как это ни смешно, но пост был переделан вот в это: http://joomlaforum.ru/index.php/topic,264044.0.html

Такие вот дела. То ли рука руку моет, то ли модераторы с утра не выспались… Но итог один. Попытки указать на вредоносные действия сайта в тематическом разделе мягко говоря не приветствуются.

По джумле мой совет такой: Там где можете обойтись без джумлы — старайтесь обходиться без джумлы. Удобный, но слишком уязвимый движок.

4 комментария

avatar
Согласен с автором… но если использовать свой шаблон и только проверенные модули и компоненты то джумла уязвима приблизительно как и другие движки ...--
может я и не прав ...тогда мои извинения
avatar
Тут в общем то порочный круг: Если я не умею писать движок на сайт — я воспользуюсь готовыми. В готовых всегда может содержаться вредоносный код. Что бы это пресечь, необходим специалист высокого класса. Если есть такой специалист, зачем тогда нужен готовый движок?
Мало того. Если например пользоваться коммерческими проектами и платить деньги, все равно можно напороться на неприятности. В итоге ты заплатил деньги и тебе все равно нужен специалист высокого класса.
avatar
тогда может лучше использовать текстовые файлы и никаких баз данных… точно никто ничего не впаяет .....))))) только одна беда --сайт разростётся со временем и сам не найдёшь что и где