Важно! Обязательный плагин для WordPress
На WordPress присутствует уязвимость, через которую на сайте моего клиента проникли в админку
Согласно access.log:
Он выполнил несколько каких-то POST-запрос с URL содержащий GET-параметр rest_route=/batch/v1, по словам клиента он сменил пароль администратора, а также я обнаружил что он создал новый аккаунт с правами администратора
Он успешно зашёл в какой-то аккаунт с правами администратора через обычную форму авторизации
Он установил и активировал плагин замаскированный под какой-то полезный плагин, который позволяет злоумышленникам выполнять любые Linux-команды на сервере через GET-запрос
Просьба выполнить следующие действия:
В каталоге wp-content/plugins создать каталог lock-rest-route
Каталог wp-content находится в каталоге сайтаВ только что созданном каталоге создать файл lock-rest-route.php
Открыть файл в любом редакторе кодов (например: Notepad++ или Visual Studio Code) и вставить этот код:
<?php
/**
* Plugin Name: Lock Rest Route
* Description: Блокировка rest_route для закрытия уязвимости
* Version: 1.0.0
* Author: pikabu.ru/@FanFigureSkating
* Author URI: https://pikabu.ru/@FanFigureSkating
*/
add_action( 'init', 'lock_rest_route', -1000 );
function lock_rest_route() {
if (isset($_GET['rest_route']) || (strpos((isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''), 'batch/v1') !== false)) {
header('HTTP/1.1 403 Forbidden', true, 403);
die();
}
}
И сохранить изменения, затем зайти в админку и активировать плагин "Lock Rest Route". И всё, можете спать спокойно
Этот плагин наглухо закрывает такую уязвимость, блокируя rest_route на раннем этапе и наглухо блокируя batch/v1
Не деактивируйте этот плагин и не удаляйте этот файл, даже если кто-то просит. Просить деактивировать плагин или удалить файл (или каталог) могут только злоумышленники



