Новости Joomla

Метод registerListeners() в CMSPlugin в плагинах планируется удалить в Joomla 7.0

Метод registerListeners() в CMSPlugin в плагинах  планируется удалить в Joomla 7.0

👩‍💻 Метод registerListeners() в CMSPlugin в плагинах планируется удалить в Joomla 7.0.Этот метод регистрирует устаревшие слушатели событий в диспетчере, имитируя работу плагинов Joomla! 3.x и ниже для Joomla 4+. По умолчанию этот метод ищет все общедоступные методы, название которых начинается с on. Он регистрирует лямбда-функции (замыкания), которые пытаются преобразовать аргументы отправленного события в аргументы вызова метода и вызвать ваш метод on<Что-то>. Результат передаётся обратно событию в его аргумент result.Теперь этот слой совместимости с устаревшей Joomla 3 помечен к удалению в Joomla 7.0, которая должна выйти осенью 2027 года. Это означает, что те уникальные расширения от Joomla 2.5 / Joomla 3, которые ещё работали на Joomla 4-6 скорее всего окончательно перестанут работать на Joomla 7. Предполагается, что активные разработчики планомерно и постепенно избавляются от технического долга и обновляют свои расширения. @joomlafeed#joomla #разработка #php

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

SalityGEN

  • Захожу иногда
  • 209
  • 7 / 1
  • Делаю мир лучше
если у вас блог то да
а если что то иное портал доска или магазин то на четверке еще нет необходимого инструментария
Причем тут блог? Там вообще не важно что у вас, дыра в самой системе
--
UPD: А я понял, на 4ку не удобно переходить?
Перенесу ВАШУ joomla на версию 4 за мани))
« Последнее редактирование: 16.10.2021, 15:46:01 от SalityGEN »
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
В этих версиях обнаружены RCE (произвольное выполнение кода)
Приведу не критичное доказательство
И ?
*

SalityGEN

  • Захожу иногда
  • 209
  • 7 / 1
  • Делаю мир лучше
И ?
Я критичное приводить здесь не буду, в целях безопасности.
А то что показано на скринах, простым языком, в логи попала запись о выходе из админки пользователя который никогда туда не заходил, это благодаря токену который дается во вьюхе которую я не должен был увидеть.
Это всего лишь самое начало, дальше раскрутили это в RCE, создали админа этим багом, поместили его в группу этим багом, зашли в админку, создали файл php с шеллом.
*

SalityGEN

  • Захожу иногда
  • 209
  • 7 / 1
  • Делаю мир лучше
Попробуйте сами:
1) Разлогиньтесь
2) перейдите по ссылке: http://ваш_домен/administrator/index.php?option=com_media&folder=&format
3) Нажмите кнопку выйти
4) Залогиньтесь в админку как обычно, и посмотрите на логи
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Не верю, иначе уже давно бы с помощью AJAX взломали бы все Joomla
Цитировать
Токены используются для защиты форм от спамовых атак. Однажды токен
был сгенерирован, система проверит почтовый запрос, чтобы узнать, он присутствует, в противном случае он сделает сеанс недействительным.
Код
public static function getFormToken($forceNew = false)
{
$user    = \JFactory::getUser();
$session = \JFactory::getSession();

return ApplicationHelper::getHash($user->get('id', 0) . $session->getToken($forceNew));
}
« Последнее редактирование: 16.10.2021, 16:22:54 от draff »
*

SalityGEN

  • Захожу иногда
  • 209
  • 7 / 1
  • Делаю мир лучше
Не верю, иначе уже давно бы с помощью AJAX взломали бы все Joomla
ну 0day не так часто находят, осталось подождать когда на эту ветку наткнутся заинтересованные люди.
И кстати, лучшая компрометация сервера это та компрометация которой не видно, все может уже произошло, но очень очень тихо)
*

SalityGEN

  • Захожу иногда
  • 209
  • 7 / 1
  • Делаю мир лучше
в общем всем "спокойной ночи"  ;D
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
ну 0day не так часто находят, осталось подождать когда на эту ветку наткнутся заинтересованные люди.
Даже Google уже знает
Код
&format=raw&'. JUtility::getToken().'=1'
*

SalityGEN

  • Захожу иногда
  • 209
  • 7 / 1
  • Делаю мир лучше
Не верю, иначе уже давно бы с помощью AJAX взломали бы все Joomla
Код
public static function getFormToken($forceNew = false)
{
$user    = \JFactory::getUser();
$session = \JFactory::getSession();

return ApplicationHelper::getHash($user->get('id', 0). $session->getToken($forceNew));
}
Токен это одно из составляющих для атаки, суть в том что в логи попадает и не только
*

SalityGEN

  • Захожу иногда
  • 209
  • 7 / 1
  • Делаю мир лучше
Даже Google уже знает
Код
&format=raw&'. JUtility::getToken().'=1'

Ответил в лс
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Подпишусь, надо будет на днях проверить?
Главный вопрос, откуда берется токен?
*

SalityGEN

  • Захожу иногда
  • 209
  • 7 / 1
  • Делаю мир лучше
Есть быстрофикс!

Запретите этот параметр GET запроса
/administrator/index.php?option=com_media&folder=&format
На какое то время поможет прикрыть форточку, но все таки задумайтесь над обновлением, по мимо этого бага там еще и роутинг кривой
« Последнее редактирование: 16.10.2021, 18:30:23 от SalityGEN »
*

SalityGEN

  • Захожу иногда
  • 209
  • 7 / 1
  • Делаю мир лучше
В .htaccess

После строки
RewriteEngine On

Прописать вот это
RewriteCond %{QUERY_STRING} format [NC]
RewriteRule ^.*$ - [R=404,L]
« Последнее редактирование: 16.10.2021, 18:25:34 от SalityGEN »
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
В com_media отдает 403, но почему форма выводится, не искал .
Код
// Access check.
if (!$user->authorise('core.manage', 'com_media') && (!$asset || (!$user->authorise('core.edit', $asset)
&& !$user->authorise('core.create', $asset)
&& count($user->getAuthorisedCategories($asset, 'core.create')) == 0)
&& !($user->id == $author && $user->authorise('core.edit.own', $asset))))
{
throw new JAccessExceptionNotallowed(JText::_('JERROR_ALERTNOAUTHOR'), 403);
}
Исправить , чтобы не подключало лишние плагины, строка 1007
Код
if( empty($parameters['username']) ) {
return false;
}
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
товарищи, объясните, плиз, для чайников, кому стоит бояться и чего делать?
эта дыра на всех действует или только для сайтов, в которых есть несколько юзеров с разными правами? т.е. баг с повышением прав?
и как фиксить, если не через htaccess (просто format часто используется в скриптах, например, чтобы получать содержимое страницы)
*

SalityGEN

  • Захожу иногда
  • 209
  • 7 / 1
  • Делаю мир лучше
В com_media отдает 403, но почему форма выводится, не искал .
Код
// Access check.
if (!$user->authorise('core.manage', 'com_media') && (!$asset || (!$user->authorise('core.edit', $asset)
&& !$user->authorise('core.create', $asset)
&& count($user->getAuthorisedCategories($asset, 'core.create')) == 0)
&& !($user->id == $author && $user->authorise('core.edit.own', $asset))))
{
throw new JAccessExceptionNotallowed(JText::_('JERROR_ALERTNOAUTHOR'), 403);
}
Исправить , чтобы не подключало лишние плагины, строка 1007
Код
if( empty($parameters['username']) ) {
return false;
}
com_media был для примера, он не причем! подойдет любой com_
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
com_media был для примера, он не причем! подойдет любой com_
Так проверяйте на любом. Я дал решение, не нравится не применяйте .
Будете ли Вы переходить с Joomla 3.x на Joomla 4?
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
RewriteCond %{QUERY_STRING} format [NC]
RewriteRule ^.*$ - [R=404,L]
Тогда уж
Код
RewriteCond %{QUERY_STRING} &format [NC]
RewriteRule ^.*$ - [R=404,L]
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
, объясните, пожалуйста, для чайников, кому стоит бояться и чего делать?
трабл в плагине user/joomla , нужно чтобы возвращал false , is true
   public function onUserLogout($user, $options = array())
   {
      $my      = Factory::getUser();
      $session = Factory::getSession();

      // Make sure we're a valid user first
      if ($user['id'] == 0 && !$my->get('tmp_user'))
      {
         return true;
      }
Чтобы потом не срабатывал код, откуда наверно и пишутся логи
      
Код
// OK, the credentials are built. Lets fire the onLogout event.
$results = $this->triggerEvent('onUserLogout', array($parameters, $options));

// Check if any of the plugins failed. If none did, success.
if (!in_array(false, $results, true))
{
$options['username'] = $user->get('username');
$this->triggerEvent('onUserAfterLogout', array($options));

return true;
}
Мое решение исключает подключение в плагины.
Будете ли Вы переходить с Joomla 3.x на Joomla 4?
« Последнее редактирование: 17.10.2021, 16:45:13 от draff »
*

SalityGEN

  • Захожу иногда
  • 209
  • 7 / 1
  • Делаю мир лучше
У нас на форуме есть люди @Progreccor которые считают что я развожу истерику, считаю минус не заслуженным, и однажды, я уберу его не зарепортив баг который найдется и на этом форуме.
« Последнее редактирование: 16.10.2021, 20:14:07 от SalityGEN »
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Вместо того, чтобы публично обсуждать уязвимость, лучше отправить команде безопасности Joomla сообщение о найденной уязвимости:

https://developer.joomla.org/security/contact-the-team.html

Это наиболее верный и корректный путь в мире программного обеспечения.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
обсуждать уязвимость,
Смотрите мой пост выше Будете ли Вы переходить с Joomla 3.x на Joomla 4?
Вспомните сколько было вопросов, что в админке два админа светятся .
*

setitle

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Есть быстрофикс!

Запретите этот параметр GET запроса
/administrator/index.php?option=com_media&folder=&format
На какое то время поможет прикрыть форточку, но все таки задумайтесь над обновлением, по мимо этого бага там еще и роутинг кривой
В чем проблема поставить пароль на папку administrator?? Да еще и по белому списку IP. Никто лишний не будет ломиться и не страшны никакие уязвимости.
в корне хостинга
<Files .htpasswd>
   deny from all
</Files>
и файл с паролем.
----
в папке administrator
    <Files index.php>
    order deny,allow
    deny from all
    #паша
   allow from 199.0.99.12
   #маша
   allow from x.x.x.x
   #илья
   allow from x.x.x.x/x
   #михаил
   allow from x.x.x.x
   #обама
   allow from x.x.x.x
    </files>
   
AuthType Basic 
AuthName "Private zone. Only for administrator!"
AuthUserFile      /var/www/xxxxxx/data/account_name/.htpasswd 
require user admin root
-------------
ну Google подробнее расскажет.
и все. пусть хоть заломятся. даже если пароль сломают, то IP точно не подберут :)))
*

SalityGEN

  • Захожу иногда
  • 209
  • 7 / 1
  • Делаю мир лучше
В чем проблема поставить пароль на папку administrator?? Да еще и по белому списку IP. Никто лишний не будет ломиться и не страшны никакие уязвимости.
в корне хостинга
<Files .htpasswd>
   deny from all
</Files>
и файл с паролем.
----
в папке administrator
    <Files index.php>
    order deny,allow
    deny from all
    #паша
   allow from 199.0.99.12
   #маша
   allow from x.x.x.x
   #илья
   allow from x.x.x.x/x
   #михаил
   allow from x.x.x.x
   #обама
   allow from x.x.x.x
    </files>
   
AuthType Basic 
AuthName "Private zone. Only for administrator!"
AuthUserFile      /var/www/xxxxxx/data/account_name/.htpasswd 
require user admin root
-------------
ну Google подробнее расскажет.
и все. пусть хоть заломятся. даже если пароль сломают, то IP точно не подберут :)))
Можно, но не у всех может оказаться апач нужной версии, в некоторых версиях есть атака на http basic auth
Вроде в 2.18.49 - 2.18.50 версиях. А так да, тоже норм вариант.
« Последнее редактирование: 17.10.2021, 23:08:25 от SalityGEN »
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Можно, но не у всех может оказаться апач нужной версии, в некоторых версиях есть атака на http basic auth
Применение тактики запугивания манюпаса набором из античата .
SSL в помощь .
*

SalityGEN

  • Захожу иногда
  • 209
  • 7 / 1
  • Делаю мир лучше
Применение тактики запугивания манюпаса набором из античата .
SSL в помощь .
Да, с SSL эти баги на апач становятся еще интереснее   ;D
Я никого не запугиваю а призываю обновляться, и разрабатывать свои проекты с учетом перехода на обновления.
Все обновы окружения выходят не только ради каких то новых плюшек, там еще и дыры латают.
Кстати могу провести аудит безопасности ваших проектов. (нужен только домен)
--
Информация для тех, кто использует сторонние компоненты и не может обновиться:
Вы сознательно установили софт который не знаете как работает получив при этом технический долг и теперь все зависит от сторонних разработчиков.
« Последнее редактирование: 18.10.2021, 11:37:02 от SalityGEN »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

На что ориентироваться : Joomla 4 или Joomla 5 ?

Автор Ebelous

Ответов: 10
Просмотров: 2085
Последний ответ 10.12.2025, 16:12:12
от yevrowl
Joomla 3 и Joomla 5 на одном хостинге

Автор AlexP750

Ответов: 4
Просмотров: 332
Последний ответ 06.12.2025, 13:39:16
от AlexP750
Правильная Canonical с версии Joomla 5.4 +

Автор creative3d

Ответов: 0
Просмотров: 112
Последний ответ 04.12.2025, 21:52:58
от creative3d
Как вывести материалы по тегам в 3 колонки (Joomla! 5.3.1)?

Автор sergspb

Ответов: 0
Просмотров: 130
Последний ответ 03.12.2025, 22:07:18
от sergspb
Как сделать всплывающее (выдвигающееся) окно на Joomla 5?

Автор sergspb

Ответов: 4
Просмотров: 281
Последний ответ 02.12.2025, 15:03:06
от sergspb