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

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

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

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

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

Категории

Все категории
Loading categories
phpmyadmin-pmadb-central-sqli — phpMyAdmin 5.2.3 — высокий — удалённый — SQLi — остаточный запрос central columns pmadb | Kitploit
Инструменты/GitHubGitHub/abraxas/phpmyadmin-pmadb-central-sqli
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеЛаборатории и Практика
GitHubabraxas/phpmyadmin-pmadb-central-sqli

phpmyadmin-pmadb-central-sqli

phpMyAdmin 5.2.3 — высокий — удалённый — SQLi — остаточный запрос central columns pmadb

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

Популярное

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

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

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

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

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

Abraxas Labs - phpmyadmin-pmadb-central-sqli

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  phpmyadmin-pmadb-central-sqli

Разбор: https://abraxaslabs.tech/research/phpmyadmin-pmadb-central-sqli

phpmyadmin-pmadb-central-sqli

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

phpMyAdmin 5.2.3 (тег RELEASE_5_2_3, коммит 962857e). Central columns записывает col_extra, конкатенируя POST-параметры extra и attribute в SQL-литерал в одинарных кавычках через соединение control-user. Соседние поля проходят через escapeString. Эти два — нет.

Аутентифицированный пользователь отправляет POST на index.php?route=/database/central-columns с multi_edit_central_column_save=1 и кавычкой в field_attribute (или col_extra). Затем getInsertQuery / updateOneColumn выполняют эту строку от имени control user pma к таблице pma__central_columns. Этот аккаунт — пользователь хранилища конфигурации, а не SQL-сессия вошедшего пользователя.

CVE-2016-5703 касалась имени базы данных в central columns. Поля extra и attribute — это не та уязвимость.

IDCVE пока нет
КлассSQLi (control-user к pma__central_columns)
ДоступУдалённый (аутентифицированный вход по cookie; pmadb central columns включены)
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 (962857e)
АутентификацияАутентифицированный вход по cookie. pmadb central columns включены.
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1:19210

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

Аутентифицированный пользователь phpMyAdmin, имеющий доступ к Central columns, может внедрить SQL от имени control user к pma__central_columns.

ПривилегияМетод / путьПодтверждено в лаборатории или выведено
Сломать строку INSERT/UPDATE control-user (целостность SQL в pmadb)POST index.php?route=/database/central-columns multi_edit_central_column_save=1 с кавычкой в field_attribute / col_extraПодтверждено в лаборатории. JSON-ошибка #1064. Свидетельство PMA-PMADB-CENTRAL-SQLI-WITNESS в ошибке control-user
Сохранить соседние поля в in-bandТот же POST, кавычка в field_nameПодтверждено в лаборатории. Строка сохраняется как neg'col. escapeString сработал
Читать или перезаписывать строки central-column других пользователейТот же sink, после закрытия строкиВыведено. Лаборатория останавливается на синтаксической ошибке; нет stacked query
Дополнительные запросы от имени control userТот же sink, если соединение control mysqli допускает multi-queryВыведено. По умолчанию mysqli::query выполняет один запрос. Здесь не включено
Доступ к другим таблицам pmadb (bookmarks, history, pma__userconfig)Только если возможны stacked queries или запись в стиле INTOВыведено. Control user в этой лаборатории имеет только DML на phpmyadmin.*

Закрыто в этой лаборатории: неаутентифицированный доступ, SQL-сессия вошедшего appuser (только appdb), OS shell и stacked queries. Функция не работает, если pmadb / central columns отключены (это FAIL, а не данная уязвимость).

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

Восемь параллельных поисков по исходникам RELEASE_5_2_3. Соседние поля в CentralColumns.php проходят через escapeString. Extra и attribute объединяются через implode в литерал в одинарных кавычках. CVE-2016-5703 касалась имени базы данных, а не этих столбцов.

Ложные пути: считать кавычку в field_name уязвимостью (она сохраняется как neg'col; это негативный результат); ожидать, что general log покажет неэкранированное свидетельство (INSERT падает с #1064 до успешной записи); считать отключённый pmadb данной уязвимостью (функция не работает).

Лаборатория

python3 phpmyadmin-pmadb-central-sqli-Abraxas-Labs.py

или

cd lab
./run.sh

Только loopback: http://127.0.0.1:19210. Образы phpmyadmin:5.2.3 и mysql:8.0. Compose-проект phpmyadmin-pmadb-central-sqli. Свидетель PMA-PMADB-CENTRAL-SQLI-WITNESS.

SUCCESS phpmyadmin-pmadb-central-sqli how=live insert-syntax=yes field-name-escaped=yes general-log-unescaped=false error-has-witness=true PMA-PMADB-CENTRAL-SQLI-WITNESS

Исправление

escapeString / quoteString(..., CONNECT_CONTROL) для extra и attribute. Разрешённый список: auto_increment, UNSIGNED, BINARY, UNSIGNED ZEROFILL и on update CURRENT_TIMESTAMP. quoteString в phpMyAdmin 6.x для JSON-блоба дизайнера — это исправленная форма для данного класса конкатенации в pmadb.

Ссылки

  • github.com/phpmyadmin/phpmyadmin тег RELEASE_5_2_3 (962857e)
  • libraries/classes/Database/CentralColumns.php getInsertQuery / updateOneColumn
  • Controllers/Database/CentralColumnsController.php POST multi_edit_central_column_save
  • Маршрут GET|POST /database/central-columns
  • Остатки того же пина: phpmyadmin-webauthn · phpmyadmin-designer-json-sqli · phpmyadmin-setup-validate · phpmyadmin-csrf-sql
  • CWE-89

Лицензия

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

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