Новости Joomla

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

Подходы, описанные в статье, полезны в тех случаях, когда вы работаете с данными в com_fields - механизме создания и редактирования пользовательских полей ядра Joomla и при использовании FieldsHelper. Многие сторонние компоненты не используют эту возможность, поэтому данная статья будет полезна лишь частично.

Читать статью на Хабре.

@joomlafeed

🏆 Открыто голосование за Joomla в премии CMS Critic People’s Choice Awards 2025

🏆 Открыто голосование за Joomla в  премии CMS Critic People’s Choice Awards 2025

🗓 Голосование продлится до 27 февраля 2026 года.

👩‍💻 Проголосовать! 👩‍💻

Номинации, в которых можно проголосовать за Joomla:
⭐️ Best Free CMS
⭐️ Best Open Source CMS
⭐️ Best Enterprise CMS

Также в номинации Best e-Commerce Solution участвуют компоненты интернет-магазинов для Joomla:
⭐️ HikaShop
⭐️ Virtuemart

В номинации Best Website Builder оказались:
⭐️ YooTheme
⭐️ SP Page Builder

Что такое CMS Critic Awards?
С 2012 года премия CMS Critic Awards занимает особое место в сообществе систем управления контентом (CMS). Это единственный в своем роде сайт, который составляет рейтинг системы управления контентом и связанных с ними решений на рынке — от малого до крупного и подчеркивает их инновации и услуги.

Каждый год награда CMS Critic Awards присуждается одному победителю в различных отраслевых категориях, таких как: «Лучшая облачная CMS», «Лучший DXP», «Лучшая Headless CMS и других. Затем результаты оглашаются через СМИ вместе с выбором редакции CMS Critic.
В этом году премия вернулась к своим традициям и только TOP-5 движков по количеству номинаций попали в 2-й этап - голосование.

@joomlafeed

0 Пользователей и 1 Гость просматривают эту тему.
  • 10 Ответов
  • 3329 Просмотров
*

nicebit

  • Новичок
  • 5
  • 0 / 0
Недавно принял проект на Joomla! 3.4.1 Stable.
Сегодня обнаружил, что сайт не работает из-за проблем с файлом www\libraries\ClassLoader.php
Сравнив с файлом из git обнаружил, что добавилась php строчка в самом начале файла.
При первом осмотре стало очевидно, что это взлом, но из кода ничего не было понятно. Когда упростил/преобразовал код, то оказалось, что это вариация "eval( base64_decode ())" с передачей основного кода через POST.

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

Для тех, кто ищет поиском: основные участники кода: rwk28, 4edcs_toab6p, cdpm1, strtolower, sdf82, strtoupper, eval, n60302a.

Весь код сайта сейчас сравню с версией из git. Обновлюсь до последней версии. Пароли поменяю.

Но есть два вопроса:
1) Подскажете, пожалуйста, как проверить базу данных? Ещё не успел настроить резервное копирование, поэтому есть только одно сохранение БД месячной давности.
2) Ради чего делают эти атаки? Кража данных, распространение своего кода или ещё что-то? Просто чтобы знать: искать какой-нибудь код в БД или просто смириться, что у меня спёрли саму БД?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Модификация "eval( base64_decode ())"
« Ответ #1 : 19.11.2015, 02:07:52 »
2) Ради чего делают эти атаки? Кража данных, распространение своего кода или ещё что-то?
Что угодно. Будет выполняться любая команда-значение параметра n60302a, которое передается через $_POST.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

winstrool

  • Давно я тут
  • 820
  • 51 / 2
  • Свободен для работы
Re: Модификация "eval( base64_decode ())"
« Ответ #2 : 19.11.2015, 02:08:19 »
1)В первую очиредь имеет смысл проверить БД на подключение сторонних JS скриптов, так как на сегодняшний день есть бегдоры, которые при авторизованном админе могут делать реализацию, до запеси "БЕГДОРЫ" авторизованым админом, во вторую очиредь наличие PHP кода и его анализ...
2) такие атаки могут быть как целевыми, так и не целевыми, в инете куча инфы по этому поводу, гуглите, всего не распишешь...
*

nicebit

  • Новичок
  • 5
  • 0 / 0
Re: Модификация "eval( base64_decode ())"
« Ответ #3 : 19.11.2015, 02:52:17 »
robert, winstrool, спасибо, проверю.

Хотя опосля подумал...
На любой странице сайт выдавал ошибку "Fatal error: Namespace declaration statement has to be the very first statement in the script in  \www\libraries\ClassLoader.php on line 9".
Исходя из этого прихожу к выводу, что взлом был сделан автоматическим ботом. Иначе человек увидел бы, что код не работает. Ошибкой было место вставки кода: девятая строчка "namespace Composer\Autoload;" возмутилась, что она не первая команда, поэтому сайт вообще отказался работать. Соответственно, если взлом был с помощью бота, то значит отправленный на следующем этапе POST-запрос просто не сработал.

Всё-равно полностью проверюсь. Но очень надеюсь на такую криворукость или недальновидность взломщика.
*

nicebit

  • Новичок
  • 5
  • 0 / 0
Re: Модификация "eval( base64_decode ())"
« Ответ #4 : 19.11.2015, 08:40:25 »
Техподдержка хостинга сообщила, что была рассылка спама с адресов:
/www/media/editors/test.php
/www/modules/mod_k2_user/ajax.php
/www/modules/mod_cmscore/mod_cmscore.php
/www/modules/mod_speedup/mod_speedup.php
/www/plugins/system/test.php
/www/plugins/vmpayment/klarna/klarna/api/transport/xmlrpc-3.0.0.beta/lib/xmlrpc.inc
/www/libraries/joomla/image/plugin.php
/www/libraries/joomla/base/ajax.php

Цель взлома ясна. Цели добились.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Модификация "eval( base64_decode ())"
« Ответ #5 : 19.11.2015, 08:49:15 »
Техподдержка хостинга сообщила, что была рассылка спама с адресов:
/www/modules/mod_speedup/mod_speedup.php
И в соседней теме про этот модуль http://joomlaforum.ru/index.php/topic,198048.msg1599916.html#msg1599916
*

winstrool

  • Давно я тут
  • 820
  • 51 / 2
  • Свободен для работы
Re: Модификация "eval( base64_decode ())"
« Ответ #6 : 19.11.2015, 15:34:02 »
Всё-равно полностью проверюсь. Но очень надеюсь на такую криворукость или недальновидность взломщика.
Чисто из практической точки зрения готов помочь, пишите в ПМ!
*

nicebit

  • Новичок
  • 5
  • 0 / 0
Re: Модификация "eval( base64_decode ())"
« Ответ #7 : 22.11.2015, 11:04:20 »
Итог взлома:
19 ноября
изменено 60 файлов (в начале файла добавлена строка с вариацией "eval( base64_decode ())")
создано 15 файлов (внутри опять же вариация "eval( base64_decode ())")

20 ноября
созданы 5 файлов (внутри большой код с уходом в глобальные переменные. Подробно разбираться не стал)
созданы файлы модуля "xcalendar" (не стал код изучать)

Количество файлов пишу примерно, так как не считал. Файлы раскиданы по всей ширине и высоте структуры папок. Похоже, рандом работал.
Искал:
- сравнением по размеру папок с исходным кодом в Git;
- поиском по фразе "eval" (примерно 100 раз употребляется законно);
- ну, и под конец проверил куда в логах запросы долбятся.
Всё это вычистил. Теперь в логах вижу, что с разных IP всё-таки пытаются пробиться к большим файлам, созданным 20 ноября. Но в ответ получают HTTP-код 404.

В базе данных никаких изменений или чего-то вредоносного не нашёл.
*

wishlight

  • Гуру
  • 5078
  • 320 / 1
  • От 300 руб быстрый хостинг. Сервера.
Re: Модификация "eval( base64_decode ())"
« Ответ #8 : 22.11.2015, 11:13:45 »
Сайт обновили? А то в 3.4.1 есть уязвимости.
*

nicebit

  • Новичок
  • 5
  • 0 / 0
Re: Модификация "eval( base64_decode ())"
« Ответ #9 : 24.11.2015, 08:19:04 »
Сайт обновили? А то в 3.4.1 есть уязвимости.
Да. Всё последней версии.

Кстати, сегодня ночью прекратились запросы (к уже отсутствующим файлам) от взломщика. Значит всё в порядке, работаю в спокойном режиме.
*

winstrool

  • Давно я тут
  • 820
  • 51 / 2
  • Свободен для работы
Re: Модификация "eval( base64_decode ())"
« Ответ #10 : 24.11.2015, 13:24:39 »
Да. Всё последней версии.

Кстати, сегодня ночью прекратились запросы (к уже отсутствующим файлам) от взломщика. Значит всё в порядке, работаю в спокойном режиме.
Поставте снифер запросов к сайту и недельку по наблюдайте, вдруг уязвимый момент остался, через снифер и вычислите его, взломщик будет пытаться восстановить доступ...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Код eval(base64_decode(

Автор wake

Ответов: 13
Просмотров: 9904
Последний ответ 27.11.2012, 14:46:23
от wake
Вирус на Joomla - скрипт: eval (unescape..

Автор allmomente

Ответов: 9
Просмотров: 6322
Последний ответ 19.08.2009, 20:18:33
от one_more