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

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

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

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

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

Категории

Все категории
Loading categories
phpmyadmin-auth-plugin-unquoted — phpMyAdmin 5.2.3 — высокий — удалённый — SQLi — идентификатор плагина аутентификации без кавычек | Kitploit
Инструменты/GitHubGitHub/abraxas/phpmyadmin-auth-plugin-unquoted
Сканеры уязвимостейАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеБезопасность Баз Данных
GitHub
abraxas/phpmyadmin-auth-plugin-unquoted

phpmyadmin-auth-plugin-unquoted

phpMyAdmin 5.2.3 — высокий — удалённый — SQLi — идентификатор плагина аутентификации без кавычек

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

Популярное

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

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

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

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

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

Abraxas Labs - phpmyadmin-auth-plugin-unquoted

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  phpmyadmin-auth-plugin-unquoted

Разбор: https://abraxaslabs.tech/research/phpmyadmin-auth-plugin-unquoted

phpmyadmin-auth-plugin-unquoted

Класс: SQLi Доступ: удалённый

phpMyAdmin 5.2.3 (RELEASE_5_2_3 / 962857e) - phpMyAdmin

Смена пароля включена по умолчанию. UserPassword.php копирует POST-параметр authentication_plugin в ALTER USER ... IDENTIFIED WITH без allowlist и без экранирования. Имя пользователя, хост и пароль в том же запросе проходят через escapeString. В MySQL 8 конструкция WITH добавляется, когда отправленный плагин отличается от текущего.

Аутентифицированный пользователь phpMyAdmin внедряет SQL в свой собственный ALTER USER через форму смены пароля. Дополнительный SQL в поле плагина — это SQL, а не имя плагина.

IDCVE пока нет
КлассSQLi
ДоступУдалённый (аутентификация по cookie; смена пароля включена)
CWECWE-89
CVSSВысокий: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
ПродуктphpMyAdmin
Затронуто5.2.3 тег RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
Аутентификацияаутентификация по cookie. $cfg['ShowChgPassword'] по умолчанию true. Тип аутентификации не config
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1

Что может сделать атакующий

Аутентифицированный пользователь phpMyAdmin может внедрить SQL в свой собственный ALTER USER через форму смены пароля.

ПривилегияМетод / точка внедренияРазведка / целостность / доступностьПодтверждено в лаборатории или выведено
Отправить дополнительный SQL в IDENTIFIED WITHPOST index.php?route=/user-password с authentication_pluginЦелостность запроса, который строит phpMyAdminПодтверждено в лаборатории. Сырой POST sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/ появляется без экранирования в окне SQL
Заставить MySQL разобрать этот дополнительный SQL как SQLТот же запрос доходит до mysqldЦелостность соединения пользователяПодтверждено в лаборатории. General log сохранил плагин sha256_password и отбросил комментарий. 1227, поскольку у этого пользователя нет CREATE USER
Дополнительные конструкции или дополнительные учётные записи, если выход из контекста разберётсяТа же точка внедрения; stacked-запросы зависят от драйвераЦелостность других учётных записейВыведено. В этой лаборатории не выполняется второй запрос и не создаётся другая учётная запись
Та же конкатенация при добавлении/редактировании пользователяPrivileges.php IDENTIFIED WITH / MariaDB VIAЦелостность запросов, строящихся от имени grantorВыведено по аналогии. В лаборатории POST выполняется только для смены пароля

Закрыто на этом пути: неаутентифицированное использование (требуется вход по cookie), config-auth (смена пароля скрыта), RCE, успешная смена плагина без GRANT на MySQL 8 (1227 без CREATE USER). Имя пользователя, хост и пароль остаются экранированными. Собственный пароль не требует GRANT; остаётся неэкранированное поле плагина, а не свободная подмена плагина.

Тот же пин: WebAuthn CustomServer leftover.

Как я это нашёл

Я зафиксировал phpmyadmin/phpmyadmin RELEASE_5_2_3. PMASA-2025-1/2/3 уже присутствуют в 5.2.2. Смена пароля по-прежнему строит:

return 'ALTER USER \'' . $dbi->escapeString($username)
    . '\'@\'' . $dbi->escapeString($hostname)
    . '\' IDENTIFIED WITH ' . $authPlugin . ' BY '

$authPlugin — это $_POST['authentication_plugin']. MySQL 5.7.37+ и 8.0 опускают WITH, если плагин не изменился. Отправьте POST с другим именем — и конструкция вернётся.

Уже зафиксированные ошибки: трактовка MySQL 1227 как сбоя остаточного кода (на самом деле это доказательство того, что дополнительный SQL был разобран); утверждение о смене плагина без GRANT на MySQL 8; трактовка config-auth как входящего в область; reverse shell. Театр.

Лаборатория

python3 phpmyadmin-auth-plugin-unquoted-Abraxas-Labs.py
# or: cd lab && ./run.sh

Только на http://127.0.0.1:19260. Образы phpmyadmin:5.2.3 и mysql:8.0. Compose-проект phpmyadmin-auth-plugin-unquoted. Стек удаляется после запуска.

Вход по cookie как appuser. POST /user-password с authentication_plugin=sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/. Окно SQL-запросов PMA: ALTER USER 'appuser'@'%' IDENTIFIED WITH sha256_password /*PMA-AUTH-PLUGIN-UNQUOTED-WITNESS*/ BY '***'. Общий журнал MySQL разбирает комментарий и сохраняет IDENTIFIED WITH 'sha256_password'. Имя пользователя заключено в кавычки.

SUCCESS phpmyadmin-auth-plugin-unquoted how=live unquoted=yes escaped-user=yes plugin=sha256_password PMA-AUTH-PLUGIN-UNQUOTED-WITNESS

Исправление

Разрешать только имена плагинов из SHOW PLUGINS. Никогда не подставлять POST в IDENTIFIED WITH, VIA или plugin=.

Ссылки

  • github.com/phpmyadmin/phpmyadmin тег RELEASE_5_2_3 (962857e4f63d42e38f11ff4d63f5e722018add76)
  • libraries/classes/UserPassword.php
  • libraries/classes/Server/Privileges.php
  • Тот же пин: PMA-5.2.3-WebAuthn-2FA
  • CWE-89

Лицензия

GNU Affero GPL v3.0. См. LICENSE. Только для лабораторной среды с loopback. Без гарантий.

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