Блог компании 3v-Hosting

Уязвимости WordPress и как их обнаружить

Общее

10 мин.


WordPress - это не просто движок для блогов, а своеобразный слой, на котором сегодня держится огромная часть всего интернета, от простых лендингов до нагруженных интернет-магазинов и даже внутренних сервисов компаний. По факту, именно эта универсальность и делает его удобным и популярным. Но у универсальности есть большая тёмная сторона - уязвимость. Ведь чем больше точек расширения включает в себя продукт, например плагины, темы, кастомный код и т.п., тем больше потенциальных ошибок может возникнуть, через которые можно попасть внутрь системы.

На практике взламывают не сам WordPress в целом, а конкретную установку, содержащую, например, устаревший плагин, криво написанную форму или доступную точку входа, о которой забыли после релиза. Сервер при этом может быть настроен практически идеально, но сайт всё равно становится уязвимым.

В этой статье мы попробуем разобраться, какие уязвимости WordPress встречаются чаще всего, где их искать на реальном проекте и почему ставка на какой-то один защитный плагин обычно заканчивается ложным чувством безопасности. Итак, поехали.

 

 

 

 

Почему WordPress часто атакуют

Причиной, почему сайты, работающие на WordPress чаще других подвергаются атакам довольно банальна - это массовость. По данным на начало 2026 года на WordPress работает около 43.5% всех сайтов в интернете, что составляет подавляющую долю рынка всех CMS, учитывая их общее количество. И получается, что атаковать его становится выгодно, ведь один правильно подобранный эксплойт может сработать на тысячах сайтов.

Но дело не только в популярности самого ядра. Так как экосистема WordPress, в сущности своей, построена на плагинах и темах, которые часто разрабатывают сторонние команды, то установка таких плагинов сродни тому, как устанавливать пакеты из непроверенных репозиториев в Linux - вроде и удобно, но очень рискованно.

В результате большинство проблем безопасности WordPress возникают не из-за ядра, а из-за:

  • устаревших плагинов;
  • плохо написанных тем;
  • кастомных доработок без аудита;
  • слабых паролей и неверной конфигурации.

 

 

 

 

Кто и зачем атакует WordPress

Чтобы приступить к построению адекватной защиты, нам важно сначала понять модель входящих угроз. Частой ошибкой большинства владельцев сайтов является представление о том, что атака - это что-то точечное и направленное персонально на них или их сайт. На практике всё гораздо проще и одновременно опаснее, так как большинство WordPress-сайтов взламываются не потому, что кто-то выбрал именно вас, а потому что вы попали под массовый скан.

Проблема в том, что Интернет постоянно обходят тысячи автоматизированных систем, которые ищут уязвимые сайты. Достаточно посмотреть в логи свеже поднятого сервера, как вы увидите сотни и тысячи обращений, который по сути являются сканированием вашего сервера.

Эти автоматизированные системы не анализируют бизнес, не изучают контент на вашем сайте - им важны только специфические сигнатуры, такие как версия плагина, открытый endpoint или слабый пароль. Если вы допустили ошибку и так совпало, что у вас на сайте есть уязвимости, то атака на ваш сайт запускается автоматически. А уже если атака удалась, то информация предоставляется злоумышленнику для ручной проработки.

В результате в 90% случаев ваш сайт атакует не человек, а просто скрипт.

Основные типы атакующих:

  • Боты-сканеры - массово обходят интернет в поисках уязвимых версий плагинов и тем;
  • Брутфорс-скрипты - перебирают логины и пароли к /wp-login.php;
  • Эксплойт-киты - автоматически используют известные уязвимости;
  • Целевые атаки - редкие, но возможны для коммерческих проектов или сайтов с данными.

 

Отдельно стоит понимать мотивацию, так как в большинстве случаев целью атаки является не сам по себе взлом ради взлома, а монетизация или получение другой выгоды. Это может быть:

  • рассылка спама;
  • размещение скрытых редиректов;
  • участие в ботнетах;
  • добыча трафика или SEO-спам;
  • и т.д. и т.п.

 

Это значит, что защита сайта на WordPress - это не борьба со стереотипным хакером в капюшоне, а борьба с постоянным фоновым потоком автоматизированных атак, который никогда не прекращается. От этого и будем отталкиваться.

 

 

 

 

Основные типы уязвимостей WordPress

Чтобы эффективно искать проблемы, нужно хотя-бы в общих чертах понимать, где они обычно возникают. Тут важно не просто заучить наизусть названия конкретных уязвимостей, а скорее представлять, как они могут появиться в рамках вашего проекта, например через формы, плагины, загрузку файлов или ошибки в логике обработки данных.

Практика показывает, что большинство известных уязвимостей - это не Rocket science, а банальные недочёты в коде или конфигурации вашего сервера, которые повторяются из проекта в проект и хорошо знакомы в среде взломщиков. Именно поэтому их можно предсказать и, при желании, закрыть ещё до того, как ими воспользуются злоумышленники.

Теперь давайте разберём основные типы уязвимостей, которые чаще всего встречаются в WordPress-сайтах.

 

1. SQL-инъекции (SQL Injection)

Классическая история, когда плагин или форма на сайте принимает пользовательский ввод и вставляет его в SQL-запрос без фильтрации.

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

 

2. XSS (Cross-Site Scripting)

XSS - эти тип атаки, при которой злоумышленник может внедрить вредоносный JavaScript в страницы вашего сайта.

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

 

3. Уязвимости загрузки файлов

Если на сайте есть форма загрузки файлов - она также является потенциальной точкой входа.

При отсутствии проверки типа файла злоумышленник может загрузить PHP-скрипт и выполнить его на сервере - это уже полноценная RCE атака.

 

4. Устаревшие компоненты

Даже идеальный код не спасёт, если вы используете устаревшие версии плагинов и компонентов, в которых уже давно найдены и описаны уязвимости.

Боты находят такие сайты автоматически, после чего злоумышленники приступают к взлому.

 

5. Брутфорс и слабая аутентификация

Брутфорс или простой перебор логинов и паролей, это, пожалуй, самая распространенная атака, так как она элементарна и производить её можно самыми простыми средствами. Стандартная точка входа для таких атак - это конечно страница авторизации /wp-login.php.

Основные ошибки, которые допускают владельцы сайтов - это:

  • использование слабых паролей;
  • отсутствие двухфакторной верификации (2FA);
  • неограниченные попытки входа.

 

Давайте для наглядности сведём все эти данные в простую таблицу.

Тип уязвимости Где встречается Что получает атакующий Уровень риска
SQL Injection формы, плагины доступ к БД критичный
XSS комментарии, поля ввода cookies, сессии высокий
File Upload формы загрузки выполнение кода критичный
Устаревшие плагины любые расширения полный контроль критичный
Брутфорс wp-login.php доступ в админку высокий

 

 

 

 

Где и как искать уязвимости

Поиск уязвимостей в WordPress не должен быть разовой акцией, а должен превратиться в процесс, в системную работу с понятной логикой. Здесь важно не столько количество инструментов, сколько правильная последовательность действий и понимание, где именно чаще всего возникают проблемы.

Если упростить, то любая проверка должна сводится к трём уровням:

  • что установлено (версии, плагины, темы);
  • как это работает (формы, загрузки, логика обработки данных);
  • как это доступно извне (точки входа, URL, права доступа).

 

Большинство уязвимостей лежит на поверхности и их можно обнаружить без сложного аудита, если последовательно пройтись по этим слоям.

 

Базовый чек-лист проверки

Начинать стоит с простого и очевидного:

  • проверить версии WordPress, плагинов и тем;
  • посмотреть список установленных расширений (особенно малоизвестных);
  • протестировать формы ввода (поиск XSS и SQL-инъекций);
  • проверить права доступа к файлам и директориям;
  • убедиться, что загрузка файлов ограничена;
  • проанализировать логи сервера (часто атаки уже идут);

Этот базовый набор покрывает большую часть реальных проблем, которые встречаются в продакшене.

 

Быстрый аудит WordPress за 15 минут

Если нужно быстро понять реальное положение дел, то можно провести экспресс-аудит. Но не обольщайтесь, он не заменяет полноценную проверку, он просто даёт хорошее представление о состоянии сайта.

Проверка версии WordPress:

wp core version

 

Список установленных плагинов:

wp plugin list

Особое внимание обратите на плагины без обновлений, неизвестные или забытые расширения а также отключённые, но не удалённые плагины.

 

Проверка уязвимостей с помощью WPScan:

wpscan --url https://example.com --enumerate vp

Это позволит сразу выявить известные проблемы в плагинах и темах.

 

Анализ директории загрузок:

ls -la wp-content/uploads/

Подозрительным может быть наличие в этой директории .php файлов, исполняемых скриптов или других странных вложенных директорий.

 

Проверка прав доступа:

find . -type f -perm 777

Файлы с правами 777 являются частой причиной компрометации системы и их наличие является важным звоночком.

 

Точки входа, которые проверяются в первую очередь

Параллельно с внутренним аудитом важно понимать, как сайт выглядит "снаружи". Боты зачастую не анализируют весь ваш проект, а идут по стандартным точкам входа, таким как:

  • /wp-login.php - часто брутфорсят;
  • /xmlrpc.php - через него можно проводить массовые атаки и pingback abuse;
  • /wp-json/ - можно получить доступ к REST API;
  • /wp-content/plugins/ - поиск уязвимых плагинов;
  • /wp-admin/ - доступ к админке сайта.

 

Если эти URL доступны без ограничений, ваш сайт уже регулярно сканируется. То, что сайт сканируют - это вполне нормальная ситуация для интернета, но она требует контроля. И лучшими практиками для этого являются ограничение доступа, логирование и мониторинг.

 

Итак, запомните, что поиск уязвимостей - это не разовое мероприятие, а регулярный процесс, который должен быть встроен в поддержку вашего сайта. Ведь даже простой чек-лист, выполняемый раз в неделю, даёт больше пользы, чем глубокий аудит не проводимый никогда.

 

 

 

 

Инструменты для обнаружения уязвимостей

Теперь, когда мы понимаем суть проблемы, можно заняться и автоматизацией. Специальные сканеры ускоряют процесс и помогают находить типовые проблемы, но все они работают по шаблонам, то есть ищут известные сигнатуры, проверяют стандартные точки входа и сравнивают версии с базами известных уязвимостей. Поэтому если не понимать, что именно происходит под капотом, то легко будет либо пропустить проблему, либо получить ложное чувство безопасности.

Поэтому данные инструменты стоит воспринимать как скорее как помощников, ускоритель проверки, но никак не единственный источник правды.

В экосистеме безопасности есть десятки решений, но на практике, наиболее часто, используется ограниченный их набор:

  • WPScan - это специализированный сканер WordPress, ориентированный на плагины, темы и известные уязвимости;
  • Nikto - проверяет веб-сервер на типовые проблемы, такие как небезопасные конфигурации, открытые директории, устаревшие компоненты;
  • Nmap - мощный инструмент, который используется для сетевого сканирования и определения открытых портов и сервисов;
  • Burp Suite - инструмент для ручного тестирования, анализа запросов и поиска логических уязвимостей.

 

Каждый из них закрывает свой сектор. Но если говорить о повседневной практике администрирования WordPress-сайтов, то не все они одинаково полезны. И в большинстве случаев максимальную отдачу даёт один инструмент - тот, который "понимает" WordPress и его экосистему лучше всех ,ведь он заточен именно на него. Давайте поговорим о нём подробнее.

 

 

 

 

WPScan

За последние несколько лет WPScan фактически стал стандартом для аудита WordPress-сайтов.

Среди его возможностей:

  • определение версий ядра, тем и плагинов;
  • поиск известных уязвимостей;
  • перечисление пользователей;
  • выявление слабых точек входа.

 

Пользоваться им достаточно просто. Посмотрим на несколько примеров.

 

Базовое использование

wpscan --url https://example.com

 

Поиск уязвимых плагинов

wpscan --url https://example.com --enumerate vp

 

Проверка пользователей

wpscan --url https://example.com --enumerate u

 

Использование API (для точных результатов)

wpscan --url https://example.com --api-token YOUR_TOKEN

 

ВАЖНО!

WPScan ищет известные уязвимости и если у вас на сайте присутствует кастомный код с ошибками, то он их, к сожалению, не найдёт.

 

 

 

 

Как встроить безопасность в процесс

Как мы уже много раз проговорили, безопасность - это не разовая настройка чего либо, а системная работа. Но всё же есть некоторый перечень мероприятий, выполнение которых позволит вам хотя бы немного обезопасить свой сайт, до проведения полноценного аудита. Вот они:

  • отключить xmlrpc.php (если он вам не нужен);
  • ограничить доступ к /wp-login.php;
  • включить 2FA;
  • настроить fail2ban;
  • выставить правильные права на файлы и директории;
  • вынести wp-config.php выше webroot;
  • минимизировать плагины;
  • делать регулярные бэкапы;

 

Уже это позволит существенно повысить безопасность вашего сайта. Отдельно обстоит дело с защитой самого сервера и на этот счёт рекомендуем вам ознакомиться с этой статьей.

 

 

FAQ по безопасности WordPress

 

Можно ли защитить WordPress только плагинами? Нет. Плагины - это только лишь один уровень защиты. Они могут закрыть часть типовых атак, но они не решают проблемы устаревших компонентов, уязвимого кода или неправильной конфигурации сервера. Без контроля инфраструктуры и регулярного аудита их эффективность ограничена.

 

Насколько опасен xmlrpc.php? Очень часто используется для атак, если не ограничен. Через него удобно проводить массовый брутфорс и DDoS-подобные запросы. Если функциональность не используется (например, мобильные приложения или интеграции), его лучше отключить или ограничить доступ.

 

Нужно ли скрывать wp-admin? Скрытие не даёт полной защиты, но снижает шум от ботов и автоматических атак. Это скорее дополнительная мера, которая уменьшает количество попыток входа, но не заменяет 2FA, ограничение доступа по IP и защиту на уровне сервера.

 

Что важнее - сервер или CMS? Оба уровня. Но чаще всего взламывают именно CMS, потому что она ближе к пользователю и чаще содержит ошибки. При этом слабая серверная конфигурация может усугубить последствия - например, позволить выполнить загруженный вредоносный код.

 

Достаточно ли просто регулярно обновлять WordPress? Обновления критически важны, но этого недостаточно. Уязвимости часто остаются в отключённых или забытых плагинах, кастомном коде и конфигурации. Обновления, конечно, это база, но не полноценная стратегия безопасности.

 

Поможет ли WAF или Cloudflare полностью защитить сайт? Нет. WAF снижает количество автоматических атак и фильтрует трафик, но не устраняет уязвимости в коде. И если на сайте есть уязвимый плагин, его всё равно могут эксплуатировать.

 

Нужно ли ограничивать доступ к wp-login.php? Да. Это одна из самых атакуемых точек. Ограничение по IP, rate limiting или использование fail2ban значительно снижает риск брутфорса и уменьшает нагрузку на сервер.

 

 

 

 

Вывод

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

К сожалению большинство уязвимостей не уникальны и поэтому не требуют сложных атак. Это типовые ошибки, такие как устаревшие плагины, открытые точки входа, слабая аутентификация и избыточные права доступа. Их можно и нужно выявлять заранее, хоть с помощью базового аудита или инструментов вроде WPScan.

Ключевым моментом является ваш подход к работе, ведь безопасность WordPress не строится вокруг какого-то одного плагина или разовой настройки. Это процесс, который включает контроль обновлений, постоянную проверку сайта, анализ логов, ограничение точек входа и базовую автоматизацию. Отдельную роль здесь играет инфраструктура, так как даже в случае компрометации самого сайта правильно настроенная изоляция не позволит атаке распространиться дальше, вглубь сервера.

Когда WordPress рассматривается как часть IT системы, а не как "отдельный сайт", то появляется предсказуемость и управляемость. В итоге задача не в том, чтобы сделать сайт невзламываемым, а в том, чтобы снизить вероятность атаки, ограничить последствия и обнаружить проблему желательно до того, как она перерастёт в инцидент.

Если вы ищете хостинг для вашего WordPress сайта, то наши VPS серверы в Украине и Нидерландах будут отличным решением. А наша высококвалифицированная служба поддержки поможет вам по любым вопросам.

Настройка WireGuard на VPS
Настройка WireGuard на VPS

Пошаговая инструкция по настройке WireGuard на VPS: установка, генерация ключей, конфигурация сервера и клиента, запуск VPN и решение типичных проблем. Быстрый ...

14 мин
Как выбрать VPS для Telegram-бота
Как выбрать VPS для Telegram-бота

Как выбрать VPS для Telegram-бота: требования к CPU, RAM и диску, webhook или polling, безопасность, мониторинг и масштабирование без лишних затрат.

14 мин