Блог компанії 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, сесії високий
Завантаження файлів форми завантаження виконання коду критичний
Застарілі плагіни будь-які розширення повний контроль критичний
Брутфорс 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;
  • /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 хв