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

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

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

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

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

Категории

Все категории
Loading categories
mysql-jdv-definer-sqli — MySQL Community Server 26.7.0 — высокий — JSON Duality DEFINER SQLi — NO_BACKSLASH_ESCAPES | Kitploit
Инструменты/GitHubGitHub/abraxas/mysql-jdv-definer-sqli
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеБезопасность Баз ДанныхЛаборатории и Практика
GitHubabraxas/mysql-jdv-definer-sqli

mysql-jdv-definer-sqli

MySQL Community Server 26.7.0 — высокий — JSON Duality DEFINER SQLi — NO_BACKSLASH_ESCAPES

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

Популярное

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

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

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

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

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

Abraxas Labs - mysql-jdv-definer-sqli

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  mysql-jdv-definer-sqli

mysql-jdv-definer-sqli

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

MySQL Community Server mysqld 26.7.0 (06a5c1c) — Oracle

JSON Duality DML конкатенирует строковые значения JSON с помощью escape_string_for_mysql (только обратный слэш), затем parse_sql под sql_mode вызывающего после переключения на sctx DEFINER представления. SET SESSION sql_mode='NO_BACKSLASH_ESCAPES' заставляет \' завершать SQL-литерал. Строка JSON, содержащая ', внедряет подзапрос / SET-список как DEFINER. Лаборатория: вызывающий с правами только на DML по представлению читает secret.s в проецируемый столбец name.

По умолчанию CREATE VIEW — DEFINER. X Plugin уже учитывает этот режим. JDV — нет. Ограничено функцией: требуется JSON Duality View.

IDCVE пока нет
КлассSQLi (DEFINER; не RCE)
ДоступУдалённый (аутентифицированный SQL; требуется DML по JSON Duality View)
CWECWE-89
CVSSHigh: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
ПродуктMySQL Community Server mysqld
Затронуто26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
Аутентификацияаутентифицированный; INSERT или UPDATE по JSON Duality View
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1. Свидетельство в проецируемом $.name.

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

Имея DML по SQL SECURITY DEFINER JSON Duality View. SET SESSION sql_mode='NO_BACKSLASH_ESCAPES'. UPDATE (etag из SELECT) строкового поля, JSON-значение которого содержит '. Сгенерированный литерал _utf8mb4 '...' завершается. Остальная часть инструкции выполняется как DEFINER. Лаборатория выбирает secret.s.note в проецируемый столбец name. Прямой SELECT по secret.s даёт 1142.

Без этого sql_mode тот же JSON сохраняется как литеральное имя. Кавычка остаётся данными.

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

Та же охота на 26.7.0. Неопубликованные Crit/High демона по умолчанию отсутствовали. JSON Duality DML по-прежнему конкатенирует значения.

sbuf.append("_utf8mb4 '");
escape_string_for_mysql(&my_charset_utf8mb4_bin, ...);
sbuf.append(1, '\'');

create_sctx_guard устанавливает view_sctx перед run_substmt. Именно sql_mode вызывающего видит parse_sql.

Ошибочные пути: SQL SECURITY DEFINER между именем представления и AS даёт 1064 (по умолчанию уже DEFINER). То же name, что и у текущей строки, пропускается (is_equal); внедряйтесь против другого значения. Etag обязателен.

Лаборатория

cd lab
./run.sh

Образ mysql:26.7.0. Опубликован 127.0.0.1:18640. Представление app.dv DEFINER root@% над app.t. Секрет в secret.s. У жертвы только SELECT/INSERT/UPDATE по представлению.

SUCCESS mysql-jdv-definer-sqli victim-secret=denied nbe-inject=yes view-has-witness=yes default-mode-inject=no dump=26.7.0 image=mysql:26.7.0 MYSQL-JDV-DEFINER-SQLI-WITNESS

Исправление

Экранируйте строки JDV DML той же ветвью NO_BACKSLASH_ESCAPES, которая уже есть в X Plugin (escape_sql_quote против escape_string_for_mysql). Параметризуйте сгенерированные INSERT/UPDATE. Не выполняйте parse_sql над конкатенированными значениями под sctx DEFINER.

Ссылки

  • github.com/mysql/mysql-server тег mysql-26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
  • sql/json_duality_view/dml.cc append_json_dom / create_sctx_guard
  • Смежные пакеты: abraxas/mysql-mysqldump-show-tables-overflow · abraxas/mysql-mysqldump-tab-path · abraxas/mysql-mysqlbinlog-raw-path · abraxas/mysql-set-role-leftover
Скачать инструмент