Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2023-3460 — CVE-2023-3460 | Kitploit
Инструменты/GitHubGitHub/emadyay/cve-2023-3460
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеАутентификация
GitHubemadyay/cve-2023-3460

CVE-2023-3460

CVE-2023-3460

Репозиторий
93 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2023-3460 - Несанкционированный доступ администратора для плагина Ultimate Member (POC)

Оценка CVSS: 9.1

Дата: 07/04/2023

Что такое плагин Ultimate Member?

Плагин Ultimate Member — это популярный плагин членства для регистрации пользователей, у плагина 200 000+ активных установок.

Alt text

Быстрая проверка

Критическая уязвимость была обнаружена в плагине Ultimate Member 7 июля. Злоумышленник может создать учётную запись администратора, используя технику повышения привилегий, которая может привести к полному захвату веб-сайта WordPress.

Итак, как работает эксплойт?

Если мы посмотрим на роли и возможности WordPress, то увидим, что у пользователя может быть довольно много ролей: Super Admin, Administrator, Editor, Author, Contributor, Contributor. Итак, как мы можем получить привилегии администратора? Сначала давайте посмотрим, как работает плагин Ultimate Member. Во-первых, вам нужно настроить плагин, чтобы он работал правильно: необходимо создать несколько страниц в разделе Pages, затем привязать эти страницы к Ultimate Member > настройки. После этого мы можем создавать новые роли или просто использовать роли по умолчанию, которые предлагает Ultimate Member.

Alt text

К этому моменту у нас должен быть работающий плагин. Теперь давайте разберёмся, как это работает в бэкенде. Я зарегистрировал обычного пользователя с ролью Subscriber. Если мы посмотрим на таблицу wp_usermeta в MySQL, то увидим, что значение wp_capabilities установлено в виде сериализованного массива, и именно там определяется наша роль, которая в данном случае — Subscriber.

Alt text

Итак, как мы можем изменить значение wp_capabilities? Мы можем передать wp_capabilities в качестве параметра в POST-запросе при регистрации, например так:

Alt text

Но на этом всё не заканчивается. Видите ли, существует функция is_metakey_banned, которая проверяет некоторые значения, такие как "cap_key", "wp_capabilities", "wp_user_level", "user_activation_key" и т. д. Нас интересует wp_capabilities, но если он есть в теле запроса, выполнение дойдёт до break, что помешает нам изменить роль.

Alt text

После этого мы можем попробовать несколько различных типов декодирования, но это не сработает. После некоторого исследования и небольшой помощи от ИИ я обнаружил, что WordPress по умолчанию принимает символы с диакритикой, например à, è, ì, ò, ù, À, È, Ì, Ò, Ù. Итак, если мы используем эти символы в теле запроса, например wp_càpabilities=administrator, что произойдёт? Ну, выполнение не дойдёт до break на строке 182 в файле class-user.php, и мы сможем обойти функцию is_metakey_banned.

Alt text

Проверив MySQL, мы видим, что значение изменилось.

Alt text

Но мы не администратор; на самом деле у нас вообще нет никаких ролей.

Alt text

Мы, очевидно, что-то сделали, но, чтобы стать администратором, нам нужно иметь точно такое же значение, как у администратора, которое выглядит так: a:1:{s:13:"administrator";b:1;}. Хорошо, теперь давайте попробуем передать это напрямую в наш параметр.

Alt text

Снова проверяем MySQL: мы установили значение wp_capabilities, но это не то, что мы ожидали.

Alt text

Плагин взял наше значение и превратил его в сериализованную строку. Но, посмотрев на wp_capabilities администратора, мы видим, что это сериализованный массив — именно то, что нам нужно. WordPress имеет собственную сериализацию, поэтому мы можем использовать её, передав наше значение в виде массива, а WordPress сделает всё остальное за нас. Вот как выглядит наш payload: wp_càpabilities[administrator]=1.

Alt text

В итоге мы видим, что значение wp_capabilities изменилось на a:1:{s:13:"administrator";s:1:"1";}, и теперь мы можем войти как администратор.

Alt text

И теперь мы можем войти как администратор.

Alt text

Скачать инструмент