Идентификация сайтов WordPress в локальных сетях и перебор страниц входа
WordPress управляет приблизительно 25% всех сайтов в мире, делая его самой популярной системой управления контентом (CMS) в интернете на сегодняшний день. Такая широкая распространённость обусловлена интуитивно понятным процессом установки, активным сообществом разработчиков и обширной поддержкой плагинов и тем, что привлекает как бизнес, так и частных пользователей. Однако эта огромная популярность также привлекает злоумышленников, нацеленных на уязвимости WordPress.
Введение в проблемы безопасности WordPress
Несмотря на простоту использования WordPress, платформа часто становится целью из-за внутренних уязвимостей безопасности, особенно атак перебором паролей. Эти атаки предполагают систематическое угадывание сочетаний имени пользователя и пароля с целью получить неавторизованный доступ.
Почему WordPress часто становится мишенью атак перебором
Атаки перебором эффективны при использовании слабых учетных данных и недостаточных защитных мер. Многие пользователи WordPress, особенно новички, не применяют эффективные стратегии безопасности, такие как:
- Установка плагинов безопасности, ограничивающих попытки входа и отслеживающих подозрительную активность.
- Защита страницы входа через HTTP-аутентификацию с использованием .htpasswd.
- Использование сложных уникальных паролей для снижения вероятности угадывания.
Отсутствие этих защит значительно повышает риск успешного взлома, причём злоумышленники используют эти уязвимости как на публичных, так и на внутренних установках WordPress.
Перебор WordPress на внутренних сетях и за файрволами
Многие организации развертывают порталы WordPress во внутренних сетях для сотрудников, защищённые файрволами. Хотя они изолированы от Интернета, эти внутренние сайты остаются уязвимыми к атакам, эксплуатирующим слабости браузерной безопасности, а не периметра сети. Одним из таких методов является атака Cross-Site History Manipulation (XSHM), позволяющая злоумышленникам обнаруживать и выполнять перебор страниц входа без прямого доступа к сети.
Понимание уязвимости XSHM
Атаки XSHM используют тонкий изъян в политике одинакового происхождения (Same-Origin Policy, SOP) — механизме безопасности браузера, который ограничивает сайтам доступ к данным друг друга внутри одной сессии. Хотя SOP запрещает прямой доступ, побочные атаки, такие как XSHM, используют манипуляции историей браузера для получения информации о взаимодействиях пользователя с целевыми сайтами.
Механизм атаки XSHM
- Злоумышленник внедряет
iframeв злонамеренный сайт, который загружает конкретную страницу WordPress (wp-login.php), которая перенаправляет авторизованных пользователей в админку WordPress (index.php). - Злоумышленник измеряет свойство
history.lengthбраузера жертвы до и после загрузки этого iframe. - Если длина истории не меняется после загрузки, это указывает, что пользователь был перенаправлен и вошёл в систему WordPress.
Эта техника позволяет косвенно подтвердить наличие активной сессии, что облегчает целенаправленные атаки перебором.
Методы обнаружения сайтов WordPress в локальных сетях
Сайты WordPress проявляют характерные поведения, например, специфические шаблоны перенаправлений URL. Так, при обращении неаутентифицированного пользователя к URL админ-панели /wordpress/wp-admin/ происходит перенаправление на страницу входа с запросом вида:
/wp-login.php?redirect_to=http%3A%2F%2Fexample.com%2Fwordpress%2Fwp-admin%2F&reauth=1
Злоумышленники используют этот предсказуемый шаблон для сканирования внутренних IP-диапазонов на предмет установок WordPress, используя:
- Вредоносные ссылки с полезной нагрузкой XSHM для проверки ответов на перенаправление.
- JavaScript-сканирование сети с использованием WebRTC (например, через фреймворк BeEF) для перечисления активных хостов в локальных подсетях.
- Проверку перенаправлений страницы входа WordPress для подтверждения обнаруженных хостов с WordPress.
Атаки перебором входа WordPress с использованием XSHM
После обнаружения внутренних сайтов WordPress злоумышленники могут выполнять попытки перебора паролей, используя:
- Отсутствие CSRF-токенов на формах входа WordPress, что оставляет их уязвимыми к неавторизованным запросам входа.
- Параметр
redirect_toв формах входа WordPress, который можно злоупотреблять для проверки успешности входа по поведению перенаправления.
Последовательность атаки
- Злоумышленник читает значение
history.lengthбраузера жертвы с помощью вредоносных скриптов. - Внедряет форму с самоподачей внутри iframe, которая проверяет комбинацию имени пользователя и пароля на странице входа WordPress.
- После отправки iframe перенаправляется с помощью параметра
redirect_toна страницу, контролируемую злоумышленником. - Злоумышленник сравнивает новое значение длины истории с предыдущим.
- Если значение не изменилось, вход прошёл успешно, раскрывая корректные учетные данные через слепой перебор.
Ограничения и трудности атак XSHM
Несмотря на новизну, атаки XSHM сталкиваются с существенными ограничениями:
- Необходимость взаимодействия пользователя: жертвы должны посетить вредоносный сайт и вручную открыть либо взаимодействовать с новыми вкладками из-за блокировщиков всплывающих окон.
- Видимость атаки: новые вкладки или обновления браузера могут насторожить пользователя.
- Ограничения внедрения iframe: заголовки безопасности, такие как
X-Frame-Options, препятствуют загрузке страниц WordPress в iframe, снижая надёжность атаки. - Особенности браузеров: например, Google Chrome изменяет поведение
history.lengthв качестве меры противодействия.
Обход ограничений с помощью window.opener
Злоумышленники используют скрипты window.opener для обхода ограничений iframe, манипулируя отдельными вкладками браузера. Этот метод позволяет:
- Открыть новую вкладку под контролем злоумышленника.
- Получить доступ к значению
history.lengthв исходной вкладке. - Перенаправить исходную вкладку на страницу админки WordPress для вызова перенаправления входа.
- Вернуть исходную вкладку под контроль злоумышленника.
- Сравнить значения длины истории для определения статуса входа.
Эта техника повышает скрытность за счёт использования «popunder»-окон, которые открываются в фоне, снижая осведомлённость пользователя.
Дополнительные особенности атак XSHM
Ограничения длины истории
Браузеры, такие как Chrome, ограничивают число записей history.length значением 50, что может затруднять отслеживание со временем. Злоумышленники обходят это, применяя:
- Перенаправление жертв на URL с одинаковым происхождением для сброса истории.
- Манипуляции навигацией браузера для восстановления начальных записей истории.
- Искусственное увеличение длины истории для поддержания точности измерений.
Обход защиты CSRF при выходе
WordPress всегда показывает форму входа независимо от текущего статуса аутентификации, позволяя злоумышленникам принудительно выйти из системы с помощью параметра reauth=1. Это позволяет проверить наличие WordPress по поведению перенаправления после выхода.
Стратегии защиты от атак XSHM и перебора
Хотя пользователи самостоятельно не могут предотвратить XSHM, веб-разработчики и администраторы могут внедрять эффективные меры противодействия:
- Избегать условных перенаправлений, которые раскрывают статус аутентификации или информацию о сессии.
- Внедрять CSRF-токены во все формы аутентификации для блокировки неавторизованных межсайтовых запросов.
- Рандомизировать структуру URL и токены для сокрытия предсказуемых путей перенаправления.
- Применять двухфакторную аутентификацию (2FA) для снижения риска перебора даже при угадывании паролей.
- Использовать ограничение скорости и блокировку учётных записей для срыва автоматизированных атак.
- Добавлять заголовки безопасности, такие как
X-Frame-OptionsиContent-Security-Policy, для минимизации векторов атак.
Заключение
Cross-Site History Manipulation — это творческий, но сложный метод, который используют злоумышленники для идентификации и перебора сайтов WordPress как в публичных, так и во внутренних сетях. Несмотря на технические ограничения и требуемое взаимодействие пользователя, понимание этих векторов атаки подчёркивает важные пробелы в безопасности WordPress.
Особое внимание комплексным мерам безопасности — включая защиту от CSRF, сильную политику аутентификации и осторожную обработку перенаправлений — необходимо для надёжной защиты WordPress от этих развивающихся угроз.
Ключевые выводы
- Повсеместность WordPress делает его первоочередной целью атак перебором входа, даже в изолированных внутренних сетях.
- Атаки XSHM используют историю браузера и поведение перенаправлений для обнаружения сессий WordPress без прямого доступа к сети.
- Реализация таких мер безопасности, как CSRF-токены, двухфакторная аутентификация и надёжная защита страницы входа существенно снижает успешность атак.
- Особенности браузеров и заголовков безопасности как ограничивают, так и влияют на возможность использования методов на базе XSHM.

