Форум OlegON > Компьютеры и Программное обеспечение > Сеть > Создание сайтов и поисковая оптимизация (SEO)

Как получить список пользователей WordPress и как от этого защититься? : Создание сайтов и поисковая оптимизация (SEO)

28.03.2024 20:19


28.05.2021 09:26
Occul
 
Не станет открытием то, что любая более-менее осмысленная атака начинается с изучения цели и сбора информации. А для сайта на WordPress что это может быть за информация?

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

Инструменты для проведения атаки

Начнём с первого этапа. Для выявления списка пользователей прекрасно подходит Kali Linux с её инструментом WPScan. Есть ещё скрипт для Nmap и модуль для Metasploit Framework, но функционируют они идентично.

Специально для этого я натравил скрипт WPScan на некоторые сайты на базе WordPress и посмотрел на её вывод:

Код:
wpscan -u <url_site> --enumerate u



Как происходит получение пользователей

Кстати, я перед тем, как поставить сканирование, включил запись трафика. Позже, после проведения Enumerating, посмотрел дамп:




То есть скрипт просто запрашивает параметр ?author=1,2,3… для первых 10 зарегистрированных пользователей и получает редирект на логин.

Вот, даже собрал http-stream данного запроса (всё очень легко делается в WireShark):




То есть сервер просто перенаправляет по коду 301 на URL вида .

Проверить можно в браузере, набрав site.ru/?author=1 – перейдём на записи, созданные первым пользователем (по умолчанию – администратор сайта).
Обрабатываем GET-запрос на уровне WEB-сервера

Идея была такая. Зачем обычному посетителю блога получить все записи администратора? Не смог придумать ни одного реального сценария, поэтому решено было резать на корню подобные запросы.

Для NGINX:

Код:
if ($arg_author) {
return 403;
}
Для Apache (не силён, но примерно как-то так):

Код:
RewriteCond %{QUERY_STRING} author=\d
RewriteRule ^ /? [L,R=403]
Попытка получения списка пользователей

После изменения конфигурации попробуем получить список пользователей:




Сценарий отработал нормально. В браузере получаем ту же картину:




Пускаем по ложному следу

В принципе, нам ничто не мешает перенаправить с 301-ым кодом на произвольный адрес и пустить скрипткиддиса по ложному следу:

Код:
if ($arg_author) {
return 301 $scheme://$server_name/author/hackersucker;
}



Конечно тут я подшутил, выгоднее всего перенаправить именно 1-ого юзера на произвольный URL, таким образом программы определения администратора пойдут по ложному следу. А тут явно видно, что “ждали”.
Часовой пояс GMT +3, время: 20:19.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.