2026年11月12日
2026年11月12日
Як перевірити плагіни WordPress на вразливості: WP-CLI і WPScan
Ця стаття — локалізована версія японського оригіналу. Читати японський оригінал
Між публікацією відомостей про вразливість плагіна й початком атак може минути зовсім мало часу. Основний підхід — регулярно повторювати таку послідовність: з’ясувати, які плагіни й версії встановлено, зіставити їх з відомими вразливостями й оновити, якщо є виправлена версія. У цій статті по черзі розглянуто перевірку версій за допомогою WP-CLI, звірку у WPScan, роботу з базами вразливостей, перевірку на зміни файлів і дії, коли вразливість знайдено. Команди та умови щодо вартості звірено з офіційною документацією станом на листопад 2026 року.
1. Складіть список встановлених плагінів і версій
Спершу з’ясуйте, що саме й у яких версіях встановлено. Це можна побачити й в адмінці в розділі «Плагіни» (Plugins) → «Встановлені плагіни» (Installed Plugins), але WP-CLI дозволяє зберегти список.
# Показати назву, версію, стан (активний/вимкнений) і наявність оновлення
wp plugin list --fields=name,version,status,update
# Показати лише ті, для яких є оновлення
wp plugin list --update=available
# Зберегти у форматі JSON для запису
wp plugin list --fields=name,version,status --format=json > plugins.json
У списку з’являються й вимкнені плагіни. Навіть вимкнений плагін залишає файли на сервері, і до вразливих файлів можуть звертатися напряму, тому непотрібні плагіни краще видаляти. Основи WP-CLI описано в статті «Як керувати плагінами за допомогою WP-CLI».
2. Звірте з відомими вразливостями у WPScan
WPScan — інструмент командного рядка, який досліджує сайт WordPress ззовні. Відомості про вразливості він бере з API WPScan, тому створіть обліковий запис на wpscan.com і випустіть API-токен.
Згідно зі сторінкою цін WPScan, безкоштовний план обмежений некомерційним використанням і до 25 викликів API на добу. Якщо ви використовуєте його для робочих сайтів, потрібна платна ліцензія. Без API-токена інструмент працює, але відомості про вразливості не показуються.
# Встановлення (якщо встановлюєте через gem для Ruby)
gem install wpscan
# Якщо користуєтеся Docker
docker pull wpscanteam/wpscan
# Перевірити плагіни, про вразливості яких повідомлено
wpscan --url https://example.com --api-token YOUR_API_TOKEN -e vp
# Використати і passive, і aggressive для виявлення
wpscan --url https://example.com --api-token YOUR_API_TOKEN -e vp --plugins-detection mixed
Основні значення -e такі.
| Значення | Об’єкт |
|---|---|
vp |
Плагіни, про вразливості яких повідомлено |
ap |
Усі плагіни |
p |
Популярні плагіни |
vt |
Теми, про вразливості яких повідомлено |
За замовчуванням плагіни виявляються пасивно (passive), тобто зчитуються з HTML сторінок тощо. Плагіни, які не залишають слідів в HTML, можуть не знайтися, тому якщо вказати aggressive або mixed, виявлення посилюється, але збільшується й кількість запитів.
Досліджувати за допомогою WPScan можна лише сайти, якими ви керуєте, або сайти, на які ви отримали дозвіл. Докладніше про використання див. також «Перевірка вразливостей сайту за допомогою WPScan».
3. Уточніть подробиці в базах вразливостей
Про плагіни, назви яких трапилися в результатах WPScan або в новинах безпеки, дізнайтеся подробиці в таких базах даних.
- WPScan Vulnerability Database (wpscan.com)
- Wordfence Intelligence (wordfence.com)
- Patchstack Database (patchstack.com)
- NVD (nvd.nist.gov, пошук за номером CVE)
Дивіться на такі відомості.
| Пункт | Що перевірити |
|---|---|
| Версії, яких це стосується | Чи потрапляє ваша версія в діапазон |
| Виправлена версія | Чи усуне проблему оновлення. Буває, що виправленої версії ще немає |
| Потрібні права | Чи можна скористатися вразливістю без входу, чи потрібні права автора або підписника |
| Серйозність (CVSS) | Число від 0 до 10. Чим більше, тим серйозніший вплив |
| Тип | XSS, SQL-ін’єкція, підвищення привілеїв, завантаження довільних файлів тощо |
Спершу займайтеся тим, чим можна скористатися без входу, і тим, що має високу серйозність. Вразливості, якими можна скористатися з правами підписника, треба усувати швидко на сайтах, де дозволено реєстрацію користувачів (сайти з членством, інтернет-магазини тощо).
4. Перевірте, чи не змінено файли
Якщо вразливістю могли скористатися, перевірте, чи файли залишилися такими, як у дистрибутиві. verify-checksums у WP-CLI порівнює файли з контрольними сумами, які публікує WordPress.org.
# Перевірити всі плагіни
wp plugin verify-checksums --all
# Перевірити лише конкретний плагін
wp plugin verify-checksums contact-form-7
# Перевірити файли ядра WordPress
wp core verify-checksums
Якщо проблем немає, з’явиться повідомлення на кшталт Success: Verified 8 of 8 plugins.. Якщо є додані або змінені файли, буде показано їх перелік.
Для платних плагінів, що не розповсюджуються через WordPress.org, контрольних сум немає, тож цим способом їх перевірити не можна. У такому разі завантажте з джерела ту саму версію й порівняйте файли.
5. Що робити, коли вразливість знайдено
# Якщо є виправлена версія: оновити
wp plugin update contact-form-7
# Якщо виправленої версії немає: вимкнути, а якщо не користуєтеся — видалити
wp plugin deactivate vulnerable-plugin
wp plugin delete vulnerable-plugin
# Перед масовим оновленням переглянути, що саме буде оновлено
wp plugin update --all --dry-run
vulnerable-plugin — приклад. Замініть його на справжній slug (стовпець name у wp plugin list).
- Перед оновленням зробіть резервну копію, а після оновлення переконайтеся, що працюють основні екрани (контактна форма, оплата тощо).
- Якщо виправленої версії не виходить, а розробку зупинено, розгляньте перехід на інший плагін із такою самою функцією. Якщо розповсюдження плагіна на WordPress.org призупинено, на сторінці плагіна з’являється позначка про це.
- Якщо є ознаки зміни файлів, одного оновлення недостатньо. Перевірте також, чи не додано користувачів-адміністраторів, чи не з’явилися PHP-файли в uploads, чи не змінено wp-config.php, і за потреби відновіть сайт із резервної копії.
6. Зробіть перевірку звичкою
- В адмінці в розділі «Плагіни» для кожного плагіна можна ввімкнути автоматичне оновлення (WordPress 5.5 і новіші). Вмикайте його спершу для тих плагінів, через оновлення яких найменше ризику зіпсувати вигляд. Докладніше див. «Як налаштувати автоматичне оновлення плагінів».
- Якщо ви запускаєте WPScan за cron, пам’ятайте про безкоштовний ліміт 25 викликів на добу й умову некомерційного використання.
- Плагін безпеки Wordfence під час сканування також повідомляє, зокрема, про плагіни, які потребують оновлення. Як ним користуватися, описано в статті «Як сканувати сайт за допомогою Wordfence».
Підсумок
Перевірка вразливостей плагінів виконується в такому порядку: скласти список (wp plugin list), звірити з відомими вразливостями (WPScan і бази вразливостей), перевірити на зміни файлів (wp plugin verify-checksums) і усунути проблему оновленням або видаленням. Видалення плагінів, якими ви не користуєтеся, — найменш трудомісткий захід.
Маєте запитання щодо WordPress? Видавець сайту перебуває в Японії й відповідає японською. Написати нам (японською)