ChatCrawlerпоиск по публичному Telegram Открыть приложение
W

WebTolkRu

сообщение · 2026-07-25 09:24 UTC
S
Ссылка
нажмите — покажем
🚨 AJAX - главная «слепая зона» безопасности В 2026 году продолжается волна атак на Joomla-сайты. Ботнеты массово сканируют сети в поиске одной и той же уязвимости — отсутствия проверки прав доступа в AJAX-обработчиках. Почему com_ajax стал идеальным «черным ходом» для хакеров и как защитить свой код? Разбираем анатомию ошибки. 🔍 Как устроена уязвимость? com_ajax создавался как легкий маршрутизатор, чтобы плагины и модули могли обрабатывать AJAX-запросы без создания собственных роутов. Главный капкан архитектуры — com_ajax НЕ проверяет авторизацию за вас. Разработчики часто путают три разных уровня защиты: 1. CSRF-токен (Session::checkToken()) — проверяет только то, что запрос отправлен с вашего сайта. Но он НЕ проверяет, кто его отправил. 2. Аутентификация ($user->guest) — проверяет, залогинен ли пользователь. 3. Авторизация (ACL / authorise()) — проверяет, имеет ли пользователь право выполнять действие. 💥 Реальные инциденты и уязвимости в Joomla: • Astroid Framework: Отсутствие авторизации в AJAX-обработчиках позволяет гостям и пользователям с минимальными правами вызывать служебные функции. • Novarian Framework: Аналогичные «слепые зоны» в AJAX-маршрутизации, открывающие доступ к выполнению кода без проверки ролей. • JoomShaper Helix3 (Волна взломов AntonKill): Массовый дефейс Joomla-сайтов через неаутентифицированный AJAX-эндпоинт фреймворка шаблона. • AcyMailing: Повышение привилегий из-за отсутствия проверки прав во внутреннем роутере (уязвимость затрагивает Joomla 9.11.0 – 10.8.1). ❌ Как делать НЕЛЬЗЯ (уязвимый код): Session::checkToken() or die('Invalid Token'); $input = Factory::getApplication()->getInput(); $this->deleteItem($input->getInt('id')); (Проверен только CSRF, но любой гость может удалить элемент). ✅ Как ДОЛЖНО быть (безопасный код): Session::checkToken() or die('Invalid Token'); $app = Factory::getApplication(); $user = $app->getIdentity(); if (!$user->authorise('core.manage', 'com_yourcomponent')) { throw new Exception('Access Denied', 403); } $this->deleteItem($app-> getInput()->getInt('id')); 🛠 Чек-лист базовой проверки: • Если вы пишете код: Никогда не полагайтесь только на com_ajax. Всегда вызывайте $user->authorise() перед выполнением действия. • Если вы администрируете сайты: Регулярно обновляйте фреймворки шаблонов (Astroid, Novarian, Helix) и сторонние расширения. • Проверьте старый код: Наличие checkToken() в AJAX-хендлере не делает его безопасным! 📖 Подробную хронологию разбора этой уязвимости читайте в статье на mySites.guru. 💬 Проверяете ACL на каждом AJAX-вызове в своих компонентах и плагинах? #joomla #php #security #webdev #cms #backend
40 ·

Вся лента · оригинал в Telegram

Открыть в Telegram Лента t.me/s Каталог площадок Искать в ChatCrawler

Слепок открытой публичной ленты из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог