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

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

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

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

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

Категории

Все категории
Loading categories
exploit-CVE-2023-3460 — Эксплуатация и анализ CVE-2023-3460 — критического повышения привилегий в плагине Ultimate Member для WordPress, с средой воспроизведения и рекомендациями по смягчению последствий. | Kitploit
Инструменты/GitHubGitHub/julienbrs/exploit-cve-2023-3460
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийОбучение и ОбразованиеЛаборатории и Практика
GitHubjulienbrs/exploit-cve-2023-3460

exploit-CVE-2023-3460

Эксплуатация и анализ CVE-2023-3460 — критического повышения привилегий в плагине Ultimate Member для WordPress, с средой воспроизведения и рекомендациями по смягчению последствий.

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
2 лет назадЕщё не проверено

title: "Sécurité des SI - CVE 2023-38408"

Анализ и эксплуатация CVE-2023-3460

CVE IDCVSS ScoreDiscoveredAffected PluginVulnerability Type
CVE-2023-3460Critical07/04/2023Ultimate MemberНесанкционированный доступ администратора

Содержание

  • Введение
  • Общий механизм уязвимости
    • Механизм управления ролями в WordPress
    • Некорректная реализация Ultimate Member
  • Цель безопасности для CVE-2023-3460
    • Допущения
    • Типичные пользователи
    • Активы, подлежащие защите
    • Угрозы
    • Функции безопасности
  • Типичная архитектура
  • Смягчение уязвимости
  • Экспериментирование с уязвимостью
    • Воспроизведение
    • Подробности об exploit.py
  • Приложение
    • Глоссарий
    • Источники

Введение

Данное исследование посвящено CVE¹-2023-3460 — критической уязвимости, затрагивающей плагин "Ultimate Member" для WordPress, которая позволяет несанкционированное повышение привилегий. Этот плагин широко распространён и используется для управления профилями на сайтах WordPress. Данная уязвимость представляет серьёзный риск, поскольку позволяет атакующему получить права администратора и, следовательно, полный контроль над сайтом. Именно поэтому эта ошибка была классифицирована как критическая и оценена в 9.1 балла по шкале CVSS организацией NIST².

Общий механизм уязвимости

CVE-2023-3460 эксплуатирует ошибку в управлении ролями и разрешениями плагином. В WordPress функция WP_Capabilities³ используется для управления ролями и разрешениями пользователей. Эта функция позволяет администраторам определять конкретные возможности для каждой роли пользователя. Однако неправильное использование этой функции может привести к уязвимостям повышения привилегий.

В случае Ultimate Member уязвимость позволяет атакующему обойти проверку возможностей WP и получить доступ уровня администратора к сайту. Плагин работает, используя предопределённый список ключей метаданных пользователя, которыми не должны манипулировать пользователи. Однако такой подход к безопасности, основанный на списках блокировки, часто оказывается недостаточным, поскольку оставляет возможности для обхода.

Механизм управления ролями в WordPress

WordPress управляет ролями и разрешениями пользователей через структуру, называемую wp_capabilities. Эта структура представляет собой сериализованное представление различных ролей и разрешений, предоставленных пользователям. Например, администратор будет иметь иной набор возможностей, чем редактор или автор. Эти возможности хранятся в базе данных WordPress в виде сериализованных массивов в таблице wp_usermeta.

Некорректная реализация Ultimate Member

Ошибка CVE-2023-3460 берёт своё начало в реализации управления ролями и разрешениями в Ultimate Member. Плагин работает, используя предопределённый список ключей метаданных пользователя, которыми пользователи не должны манипулировать. Этот список используется для проверки того, пытаются ли пользователи сохранить эти ключи при создании учётной записи. Такой подход является распространённым анти-паттерном безопасности, когда блокировка известных вредоносных входных данных (списки блокировки) может казаться интуитивно понятной, но на деле оказывается сложнее, чем ожидалось, и часто оставляет возможности для обхода безопасности.

Здесь Ultimate Member использует недостаточную проверку метаданных, отправляемых при регистрации пользователей. Плагин использует функцию под названием is_metakey_banned для проверки того, разрешены ли метаданные, отправленные пользователем. Эта функция проверяет, присутствуют ли отправленные метаданные в списке запрещённых метаданных. Если это так, функция возвращает true, и регистрация пользователя блокируется. В противном случае функция возвращает false, и регистрация пользователя разрешается.

Однако WordPress принимает некоторые символы с диакритическими знаками как символы по умолчанию. Если пользователь отправляет метаданные с символами с диакритическими знаками, функция is_metakey_banned не обнаружит их, и регистрация пользователя будет разрешена.

Цель безопасности для CVE-2023-3460

Допущения

Организационная безопасность

Плагин Ultimate Member широко используется в различных средах — от небольших личных блогов до крупных сайтов электронной коммерции. Нельзя сделать никаких конкретных допущений о навыках в области компьютерной безопасности конечных пользователей или администраторов сайтов.

Физическая безопасность

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

Логическая безопасность

Предполагается, что плагин Ultimate Member установлен и настроен правильно в соответствии с официальными инструкциями. Предполагается, что сайт WordPress поддерживается в актуальном состоянии с базовыми мерами безопасности.

Типичные пользователи

  • Администраторы сайта: управляют конфигурацией плагина и общей безопасностью сайта.
  • Пользователи сайта: регистрируются и взаимодействуют с сайтом через плагин Ultimate Member.
  • Разработчики: настраивают и расширяют функциональность плагина для конкретных нужд.

Активы, подлежащие защите

  • B1 Конфиденциальность данных пользователей: личная информация и учётные данные для входа.
  • B2 Целостность веб-сайта: предотвращение несанкционированных изменений содержимого или структуры сайта.
  • B3 Целостность плагина Ultimate Member: исходный код и функциональность плагина.

Угрозы

  • M1 Несанкционированный доступ: атакующий получает привилегии администратора через уязвимость.
  • M2 Внедрение вредоносного кода: изменение поведения сайта путём внедрения кода.
  • M3 Утечка данных: несанкционированный доступ к конфиденциальным данным пользователей.
  • M4 Ущерб репутации: негативные последствия для репутации из-за компрометации сайта.

Покрытие активов угрозами

7.5 Функции безопасности

  • F1 Безопасное управление ролями: надёжные механизмы управления ролями и разрешениями.
  • F2 Проверка входных данных: строгие проверки отправляемых данных для предотвращения внедрения вредоносных данных.
  • F3 Обновления и патчи безопасности: регулярное обновление плагина для исправления известных уязвимостей.
  • F4 Обучение и повышение осведомлённости: информирование администраторов и пользователей о передовых методах обеспечения безопасности.

Типичная архитектура

Веб-сервер:

  • Размещает сайт WordPress.
  • Обычно это сервер Apache или Nginx на машине с Linux (может варьироваться в зависимости от хостинг-провайдера или предпочтений администратора).
  • Подключён к Интернету для обеспечения доступа к веб-сайту.

Система управления базами данных (СУБД):

  • Обычно MySQL или MariaDB.
  • Хранит данные сайта WordPress, включая данные пользователей, управляемые Ultimate Member.

WordPress с плагином Ultimate Member:

  • WordPress, установленный с плагином Ultimate Member для управления профилями пользователей, регистрацией и управлением ролями.
  • Может включать другие плагины и темы, которые могут взаимодействовать с Ultimate Member.

Сеть и безопасность:

  • Межсетевой экран и другие меры сетевой безопасности для защиты сервера.
  • SSL/TLS для защиты связи между клиентом и сервером.

Пользователи/Администраторы:

  • Администраторы сайта, которые управляют и поддерживают сайт WordPress и плагин Ultimate Member.
  • Конечные пользователи, которые регистрируются и взаимодействуют с сайтом.

Внешние сервисы (опционально):

  • Сервисы электронной почты для уведомлений и управления учётными записями.
  • Интеграции с социальными сетями или другими платформами для обеспечения связности и расширенной функциональности.

Смягчение уязвимости

В качестве администратора вот конкретные меры, которые можно предпринять для снижения рисков, связанных с этой уязвимостью.

1. Ограничение изменяемых метаданных

Проверка пользовательских входных данных: внедрить проверки на стороне сервера для проверки всех пользовательских входных данных, особенно тех, которые изменяют метаданные, такие как wp_capabilities. Использовать регулярные выражения или списки разрешений (whitelists), а не списки блокировки, для контроля входных данных.

2. Защита форм регистрации

CAPTCHA и ограничения частоты запросов: интегрировать CAPTCHA и ограничения частоты запросов в формы регистрации для предотвращения автоматизированных атак. Проверки на стороне клиента: хотя проверки на стороне клиента недостаточны сами по себе, они могут помочь предотвратить автоматизированные атаки и улучшить пользовательский опыт.

3. Мониторинг и анализ журналов

Мониторинг журналов: внедрить систему мониторинга журналов для обнаружения любых подозрительных изменений ролей пользователей или попыток внедрения метаданных. Это можно сделать с помощью инструментов анализа журналов.

4. Использование передовых решений веб-безопасности

Межсетевой экран веб-приложений (WAF): настроить WAF⁴ для блокировки известных и неизвестных атак, включая атаки путём внедрения вредоносного кода. Системы обнаружения и предотвращения вторжений (IDS/IPS)⁵: внедрить IDS/IPS для обнаружения попыток эксплуатации уязвимости.

5. Управление разрешениями и ролями

Пересмотр ролей пользователей: регулярно проверять роли, назначенные пользователям, для обнаружения аномального повышения привилегий. Ограничение разрешений: ограничить разрешения, предоставляемые по умолчанию новым пользователям, и требовать административного подтверждения для назначения высоких ролей, следуя принципу наименьших привилегий. Подробнее об этом принципе см. здесь.

6. Обновления и патчи безопасности

Быстрое применение обновлений: регулярно выполнять обновления безопасности для плагинов и самого WordPress.

7. Повышение осведомлённости и обучение разработчиков

Обучать разработчиков передовым методам безопасности, упомянутым ранее, и повышать их осведомлённость о рисках и последствиях неправильной реализации.

Экспериментирование с уязвимостью

Воспроизведение

Для запуска эксплуатации уязвимости доступен Makefile. Вы можете использовать его следующим образом:

  • make up для запуска WordPress со всеми необходимыми установками. После ожидания будет запущен сервер WordPress, настроен и установлена версия 2.6.5 плагина Ultimate Member. После этого вы сможете подключиться к WordPress на странице Login с учётными данными admin:password. Перейдя на вкладку Users, вы увидите, что присутствует только пользователь admin. one_admin

    Примечание: если у вас есть docker-compose, а не docker compose, вы можете соответствующим образом изменить Makefile (переменная DOCKER_COMPOSE= docker-compose).

Затем вы можете запустить эксплуатацию уязвимости:

  • make exploit После этого вы сможете подключиться к WordPress на Login с учётными данными, выданными эксплойтом, и наблюдать на вкладке Users, что был создан новый пользователь с ролью Administrator.

    two_admin

  • make down для остановки сервера WordPress и удаления данных.

Подробности об exploit.py

  • make exploit запускает скрипт exploit.py. Этот скрипт действует в несколько этапов: Технические детали эксплойта

1. Проверка уязвимости: перед эксплуатацией скрипт проверяет, является ли версия плагина Ultimate Member, установленная на целевом сайте, уязвимой, то есть ниже версии 2.6.7.

2. Получение nonce безопасности: скрипт получает nonce безопасности³ со страницы регистрации целевого сайта. Этот nonce необходим для того, чтобы запрос на регистрацию был принят WordPress. Nonce извлекается путём анализа HTML-кода страницы регистрации.

3. Эксплуатация уязвимости: затем скрипт отправляет POST-запрос на страницу регистрации, включая изменённый параметр (wp_càpabilities[administrator]=1). Этот параметр использует символ с диакритическим знаком (à) для обхода проверок безопасности плагина и некорректной сериализации данных, тем самым присваивая роль администратора созданному новому пользователю.

4. Подтверждение эксплойта: после отправки запроса скрипт проверяет, успешна ли операция, анализируя ответ сервера.

Приложение

Глоссарий

  1. CVE (Common Vulnerabilities and Exposures): международная система индексации уязвимостей в области компьютерной безопасности. Подробнее.
  2. nvd.nist.gov: эталонная база данных уязвимостей в области компьютерной безопасности. Официальный сайт.
  3. WP_Capabilities: сериализованный атрибут WordPress, используемый для управления ролями и разрешениями пользователей. Узнайте больше о ролях и возможностях WordPress и о том, как их использовать.
  4. Nonce безопасности: токен, используемый в компьютерных коммуникациях для предотвращения некоторых форм атак, таких как CSRF-атаки. Подробности здесь.
  5. WAF (межсетевой экран веб-приложений): инструмент безопасности для мониторинга и фильтрации HTTP-трафика между веб-сервером и Интернетом. Углублённое изучение.
  6. IDS/IPS (системы обнаружения и предотвращения вторжений): устройства или приложения, которые отслеживают сеть или системы для обнаружения вредоносной активности. Дополнительные пояснения.
  7. Cross-Site Request Forgery (CSRF): атака, которая заставляет вошедшего в систему пользователя выполнять нежелательные действия в веб-приложении. Узнайте больше.

Источники

Скачать инструмент
УгрозыB1 (Конфиденциальность данных пользователей)B2 (Целостность веб-сайта)B3 (Целостность плагина Ultimate Member)
M1 Несанкционированный доступXXX
M2 Внедрение вредоносного кодаXX
M3 Утечка данныхX
M4 Ущерб репутацииX
НазваниеСсылка
NIST CVE-2023-3460https://nvd.nist.gov/vuln/detail/CVE-2023-3460
Ultimate Member Githubhttps://github.com/ultimatemember/ultimatemember
Версия пакета, использованная для эксплуатации 2.6.5https://wordpress.org/plugins/ultimate-member/advanced/
Патч для эксплойтаhttps://github.com/ultimatemember/ultimatemember/commit/fae47c6065ce07e9a8b44501002fa5b4f16d2456
Обзор эксплойтаhttps://thesecmaster.com/how-to-fix-cve-2023-3460-a-privilege-escalation-vulnerability-in-ultimate-member-wordpress-plugin/
OWASP Top 10 риски безопасности приложенийhttps://owasp.org/www-project-top-ten/