Включенный XML-RPC в WordPress: угроза брутфорса и DDoS-атак
Файл xmlrpc.php исторически использовался для удаленного управления сайтом через мобильные приложения и сторонние сервисы.
Злоумышленники используют метод system.multicall для проверки сотен паролей за один HTTP-запрос, обходя стандартные плагины ограничения попыток входа.
Степень критичности и чем опасна уязвимость
Высокая скорость подбора паролей и паразитная нагрузка на базу данных. Данный вектор также активно эксплуатируется злоумышленниками для проведения распределенных атак типа Denial of Service (DDoS) на сторонние интернет-ресурсы через функцию pingback.ping.
Как наш сканер находит эту уязвимость
Site Check проверяет доступность файла /xmlrpc.php на сервере.
Проверка периметра CMS WordPress включает бережный опрос стандартных служебных путей (/wp-json/, /xmlrpc.php, /wp-content/plugins/) для определения векторов утечки версий плагинов, имен авторов и отладочных логов без создания нагрузки на базу данных MySQL.
Как устранить уязвимость (Пошаговое руководство)
Для ликвидации риска выполните следующие действия в конфигурации вашего сервера или приложения:
# Блокировка XML-RPC в Nginx:
location = /xmlrpc.php {
deny all;
return 403;
}
- Заблокируйте файл xmlrpc.php на уровне Nginx или Cloudflare.
- Если XML-RPC не используется для сторонних интеграций, отключите его плагином.
Анатомия атаки и реальные последствия для проекта
Интерфейс xmlrpc.php уязвим к атакам усиления перебора паролей (system.multicall) и генерации DDoS-атак через функцию pingback.ping, перегружая сервер тысячами запросов.
Влияние на соответствие стандартам: Несоответствие стандартам безопасности веб-приложений OWASP Top 10 (A07:2021 Identification and Authentication Failures).
Матрица эшелонированной защиты (Defense-in-Depth)
| Уровень защиты | Техническое действие | Инструмент / Механизм |
|---|---|---|
| Веб-сервер Nginx | Полный запрет доступа к файлу xmlrpc.php (location = /xmlrpc.php { deny all; return 404; }) | Nginx deny directive |
| WAF / Cloudflare | Создание правила фаервола Managed Challenge или Block для URI path /xmlrpc.php | Cloudflare WAF Rule |
| Плагины безопасности CMS | Отключение поддержки протокола XML-RPC через плагин Disable XML-RPC | WP Security Plugin |
Верификация устранения: команды для быстрой проверки
После внесения изменений в настройки сервера или исходный код приложения проверьте отсутствие уязвимости с помощью терминальных утилит:
curl -I -s https://ваш-домен.com/xmlrpc.php | grep "HTTP/"
# Ожидается 403 или 404
Рекомендации DevSecOps для безопасного развертывания
Заблокируйте доступ к xmlrpc.php в Nginx: location = /xmlrpc.php { deny all; return 404; }.
- ✓ Отключить протокол xmlrpc.php через конфигурационный файл веб-сервера Nginx
- ✓ Ограничить публичный доступ к эндпоинту /wp-json/wp/v2/users для анонимных клиентов
- ✓ Запретить выполнение PHP-скриптов в директории загрузок /wp-content/uploads/
- ✓ Включить автоматические обновления безопасности ядра WordPress и плагинов
Часто задаваемые вопросы по устранению
Экосистема WordPress часто подвергается массированным автоматизированным сканированиям. Отключение неиспользуемого протокола XML-RPC, сокрытие REST API эндпоинта пользователей и регулярное обновление тем и плагинов снижают риск компрометации сайта на 95%.
Для предотвращения вектора «Включенный XML-RPC в WordPress: угроза брутфорса и DDoS-атак» зафиксируйте проверочные правила в CI/CD пайплайне и настройте непрерывный мониторинг внешнего периметра через Site Check.