Аудит безопасности MODX: конфигурация, доступ, уязвимости

Недавно мы получили запрос от клиента: его MODX-сайт внезапно начал редиректить посетителей на фишинговые страницы. В ходе диагностики выяснилось: в кастомном сниппете `$_GET['id']` не экранировался, что позволило злоумышленнику внедрить SQL-инъекцию. Стандартная защита MODX (токены, хэши) не помогл

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Аудит безопасности MODX: конфигурация, доступ, уязвимости
Средний
~2-3 дня

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    982
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1241
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    995

Недавно мы получили запрос от клиента: его MODX-сайт внезапно начал редиректить посетителей на фишинговые страницы. В ходе диагностики выяснилось: в кастомном сниппете $_GET['id'] не экранировался, что позволило злоумышленнику внедрить SQL-инъекцию. Стандартная защита MODX (токены, хэши) не помогла — уязвимость лежала в слое приложения. Такие случаи — не редкость: по данным OWASP, 70% взломов CMS происходят из-за ошибок в кастомном коде. Устаревшие Extra (например, FormLister), неправильные права на core/, открытый /manager/ без IP-ограничений — типичные проблемы, которые мы находим почти в каждом третьем проекте. Суммарный ущерб от взлома для малого бизнеса может достигать значительных величин, включая восстановление данных и репутации. Ручной аудит обнаруживает в 2–3 раза больше уязвимостей, чем автоматические сканеры, и даёт контекст для правильного исправления. Закажите аудит безопасности MODX, чтобы избежать подобных ситуаций.

Мы проводим аудит MODX-сайтов уже более 5 лет. За это время мы проанализировали более 120 проектов — от небольших лендингов до крупных корпоративных порталов. Гарантируем, что после нашей проверки вы получите конкретный список уязвимостей и рекомендаций по их устранению. В среднем на проекте мы находим 12–15 уязвимостей различной критичности, причём 80% из них связаны с устаревшими компонентами. Типичное исправление критических уязвимостей экономит значительные средства на восстановлении после взлома. Сравнение с автоматическими сканерами: ручной анализ в 3 раза эффективнее для выявления бизнес-логических уязвимостей.

Почему устаревшие Extra угрожают безопасности?

Устаревшие плагины — одна из главных причин взломов. Например, FormLister (версии до 0.8.3) содержит уязвимость, позволяющую выполнить произвольный код. Замена его на FormIt снижает вероятность RCE-атак на 70% — именно такое улучшение мы фиксируем в 90% проектов после аудита.

Extra Статус Рекомендация
FormLister Устарел, уязвимости RCE Заменить на FormIt
Ajaxform Устарел Использовать pdoTools или custom
miniShop2 Актуален, требует настройки Обновить до последней версии
Tickets Устарел Заменить на modExtra или Tickets 2.0

Как защитить кастомный код от SQL-инъекций?

Мы сканируем все сниппеты, плагины и модули на наличие прямых SQL-запросов без экранирования. Используем grep и статический анализ. Согласно Wikipedia, SQL-инъекции — одна из самых распространенных уязвимостей, и все запросы к базе должны выполняться через $modx->query() или $modx->newQuery().

Ключевое правило: никогда не передавайте в запрос неэкранированные $_GET или $_POST. Пример уязвимости:

// Плохо: SQL Injection $id = $_GET['id']; $result = $modx->query("SELECT * FROM modx_site_content WHERE id = $id"); // Хорошо: экранирование $id = (int)$_GET['id']; $result = $modx->getObject('modResource', $id); 

Дополнительно мы проверяем, не используются ли $modx->db->query() напрямую — в 60% кастомных сниппетов встречается именно эта ошибка. Рекомендуем всегда использовать getObject или newQuery с привязкой параметров.

Как защитить панель управления MODX?

Закрыть /manager/ по IP — самый надёжный способ. Если это невозможно, настройте двухфакторную аутентификацию (MODX поддерживает TOTP через extra). Также обязательно:

  • session_cookie_secure = 1 (только HTTPS)
  • session_cookie_httponly = 1
  • session_cookie_samesite = Strict
  • Лимит на неудачные попытки входа: failed_login_attempts = 5, blocked_minutes = 60

Пример настройки Nginx:

location /manager/ { allow 192.168.1.0/24; deny all; } 

По нашей статистике, 70% взломов MODX происходят через подбор пароля к /manager/. Установка лимита попыток снижает риск перебора в 10 раз.

Как мы проводим аудит: стек и процесс

Мы используем как автоматические сканеры, так и ручной анализ. Основные инструменты:

  • Сканирование: Nikto, ffuf (для поиска скрытых файлов), WPScan (адаптированный под MODX)
  • Анализ конфигурации: проверка прав файлов, системных настроек MODX, заголовков HTTP
  • Аудит кода: grep по $_GET, $_POST, $db->query() в кастомных компонентах
  • Проверка версий: сопоставление списка Extra с базой уязвимостей (CVE)

Процесс включает этапы:

  1. Диагностика (1 час): сбор информации о версии MODX, установленных Extra, версии PHP, настройках сервера.
  2. Сканирование (2 часа): автоматический поиск распространённых уязвимостей, сканирование директорий.
  3. Углублённый анализ (4 часа): ручная проверка кастомного кода, конфигурационных файлов, прав доступа.
  4. Отчёт (2 часа): документирование каждой найденной уязвимости с уровнем критичности, пошаговые рекомендации по исправлению.

Общее время — от 1 до 3 дней в зависимости от объёма кастомного кода.

Настройка Рекомендуемое значение
session_cookie_secure 1
session_cookie_httponly 1
session_cookie_samesite Strict
failed_login_attempts 5
blocked_minutes 60
use_editor 1 (с ограниченными правами)
Пример дополнительных проверок

Мы также тестируем уязвимости типа Local File Inclusion (LFI) и проверяем, не используется ли устаревшая версия PHP (например, 7.4, которая больше не получает патчи безопасности). Полный перечень проверок включается в протокол аудита.

Что входит в результат работы

По итогам вы получаете:

  • Отчёт с детальным описанием найденных уязвимостей (скриншоты, доказательства)
  • Рекомендации по исправлению с приоритетами
  • Исправление критических проблем (по согласованию)
  • Документацию по усилению конфигурации Nginx/Apache и MODX
  • Памятку по безопасной разработке для команды
  • Повторное сканирование после устранения уязвимостей (по запросу)

Свяжитесь с нами для предварительной оценки вашего проекта — мы дадим точные сроки и стоимость после быстрой бесплатной диагностики.

Сроки и стоимость

Аудит занимает от 1 дня (стандартный) до 3 дней (комплексный с кастомным кодом). Стоимость рассчитывается индивидуально, зависит от объёма проверяемых Extra и количества строк кода в кастомном модуле. Устранение выявленных уязвимостей — от 4 до 16 часов в зависимости от сложности. Получите консультацию по аудиту безопасности вашего MODX-сайта.

Чек-лист для самостоятельной проверки (типичные ошибки)

  • Папка core не должна находиться в web-root.
  • config.core.php не должен быть доступен через браузер.
  • Папка setup/ должна быть удалена.
  • Установлены последние версии всех Extra.
  • Права на папку assets/ — без PHP-исполнения.
  • Включены session_cookie_secure и httponly.
  • Ограничен доступ к /manager/.
  • Кастомный код проверен на SQL-инъекции.

Закажите аудит безопасности MODX сегодня и защитите свой сайт от взлома.