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

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

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

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

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

Категории

Все категории
Loading categories
mysql-install-component-scheme — MySQL Community Server 26.7.0 — высокий — INSTALL COMPONENT с квалифицированной схемой — обход plugin_dir | Kitploit
Инструменты/GitHubGitHub/abraxas/mysql-install-component-scheme
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеИнструмент Удаленного ДоступаБезопасность Баз ДанныхЛаборатории и Практика
GitHub
abraxas/mysql-install-component-scheme

mysql-install-component-scheme

MySQL Community Server 26.7.0 — высокий — INSTALL COMPONENT с квалифицированной схемой — обход plugin_dir

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

Популярное

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

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

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

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

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

Abraxas Labs - mysql-install-component-scheme

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  mysql-install-component-scheme

Разбор: https://abraxaslabs.tech/research/mysql-install-component-scheme

mysql-install-component-scheme

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

MySQL Community Server mysqld 26.7.0 (06a5c1c) — Oracle

Схема file:// по умолчанию для INSTALL COMPONENT оборачивается mysql_server_path_filter и принудительно ограничивается каталогом plugin_dir. Нефильтрованный загрузчик libminchassis остаётся зарегистрированным как dynamic_loader_scheme_file.mysql_minimal_chassis. URN-схема file.mysql_minimal_chassis получает эту реализацию и выполняет dlopen абсолютного пути с UID процесса mysqld. INSTALL PLUGIN / CREATE FUNCTION SONAME по-прежнему отклоняют /. Требуется INSERT на mysql.component (PR:H).

В лаборатории стандартный component_query_attributes.so копируется в /tmp/MYSQL-INSTALL-COMPONENT-SCHEME-WITNESS.so. Пользовательский компонент не используется.

ПолеЗначение
IDCVE пока нет
КлассRCE (компонент dlopen с правами mysqld; PR:H; в лаборатории загружен стандартный .so)
ДоступУдалённый (аутентифицированный SQL; INSTALL COMPONENT / PR:H)
CWECWE-427
CVSSHigh: 7.2 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
ПродуктMySQL Community Server mysqld
Затронуто26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
АутентификацияINSTALL COMPONENT (INSERT на mysql.component)
ЛицензияGNU Affero GPL v3.0
ЛабораторияТолько 127.0.0.1. Стандартный неиспользуемый компонент скопирован за пределы plugin_dir.

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

Иметь право INSTALL COMPONENT. Разместить компонент .so за пределами plugin_dir (FILE DUMPFILE в пределах secure_file_priv или локальная запись). INSTALL COMPONENT 'file.mysql_minimal_chassis:///abs/name' (без суффикса .so; загрузчик добавляет его). Выполняется dlopen с UID процесса mysqld. Тот же URN сохраняется в mysql.component и перезагружается при перезапуске.

file:///abs/name отклоняется (3529). INSTALL PLUGIN ... SONAME '/abs/...' отклоняется (1124). Квалифицированная схема — это то, что осталось.

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

Та же охота на 26.7.0. set_default("dynamic_loader_scheme_file.mysql_server_path_filter") — задокументированная граница. Нефильтрованная реализация остаётся зарегистрированной, чтобы обёртка могла её вызывать. get_scheme_service_from_urn берёт байты до :// в качестве схемы.

my_service<SERVICE_TYPE(dynamic_loader_scheme)> service(
    (my_string("dynamic_loader_scheme_") + scheme).c_str(),
    &imp_mysql_minimal_chassis_registry);

file.mysql_minimal_chassis — это реальная схема. component.test никогда её не пробует.

Неверные ходы: URN с 3 слэшами (scheme:///tmp/...) загружался; 4 слэша не требовались. Основа URN должна опускать .so.

Лаборатория

cd lab
./run.sh

Образ mysql:26.7.0. Опубликован 127.0.0.1:18650. plugin_dir=/usr/lib64/mysql/plugin. Копирует штатный component_query_attributes.so в /tmp/MYSQL-INSTALL-COMPONENT-SCHEME-WITNESS.so.

SUCCESS mysql-install-component-scheme file-slash-denied=yes qualified-load=yes component-urn=yes dump=26.7.0 image=mysql:26.7.0 MYSQL-INSTALL-COMPONENT-SCHEME-WITNESS

Исправление

Не следует получать dynamic_loader_scheme_file.mysql_minimal_chassis из SQL URN. Сопоставляйте только file с реализацией path-filter. Отклоняйте схему, которая указывает на реализацию. Сохраняйте check_valid_path для каждого загрузчика файлов.

Ссылки

  • github.com/mysql/mysql-server тег mysql-26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
  • components/libminchassis/dynamic_loader.cc get_scheme_service_from_urn
  • sql/server_component/dynamic_loader_path_filter.cc
  • Сопутствующие пакеты: abraxas/mysql-mysqldump-show-tables-overflow · abraxas/mysql-mysqldump-tab-path · abraxas/mysql-mysqlbinlog-raw-path · abraxas/mysql-set-role-leftover
Скачать инструмент