Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
mysql-jdv-definer-sqli — MySQL Community Server 26.7.0 - Alta - JSON Duality DEFINER SQLi - NO_BACKSLASH_ESCAPES | Kitploit
Ferramentas/GitHubGitHub/abraxas/mysql-jdv-definer-sqli
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoSegurança de Banco de DadosLabs e Prática
GitHubabraxas/mysql-jdv-definer-sqli

mysql-jdv-definer-sqli

MySQL Community Server 26.7.0 - Alta - JSON Duality DEFINER SQLi - NO_BACKSLASH_ESCAPES

Ver Repositório
12há 10 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Abraxas Labs - mysql-jdv-definer-sqli

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

mysql-jdv-definer-sqli

Classe: SQLi Alcance: Remoto

MySQL Community Server mysqld 26.7.0 (06a5c1c) - Oracle

O JSON Duality DML concatena valores de string JSON com escape_string_for_mysql (apenas backslash), depois parse_sql sob o sql_mode do invocador após trocar para o sctx do DEFINER da view. SET SESSION sql_mode='NO_BACKSLASH_ESCAPES' faz com que \' encerre o literal SQL. Uma string JSON contendo ' injeta uma subquery / lista SET como DEFINER. Lab: invocador com apenas DML na view lê secret.s para a coluna name projetada.

O CREATE VIEW padrão é DEFINER. O X Plugin já ramifica nesse modo. O JDV não. Condicionado por feature: precisa de uma JSON Duality View.

IDainda sem CVE
ClasseSQLi (DEFINER; não RCE)
AlcanceRemoto (SQL autenticado; precisa de DML em uma JSON Duality View)
CWECWE-89
CVSSAlto: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
ProdutoMySQL Community Server mysqld
Afetado26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
Autenticaçãoautenticado; INSERT ou UPDATE em uma JSON Duality View
LicençaGNU Affero GPL v3.0
Labapenas 127.0.0.1. Testemunho em $.name projetado.

O que um atacante pode fazer

Possuir DML em uma JSON Duality View SQL SECURITY DEFINER. SET SESSION sql_mode='NO_BACKSLASH_ESCAPES'. UPDATE (etag do SELECT) em um campo string cujo valor JSON contém '. O literal _utf8mb4 '...' gerado termina. O restante da instrução é executado como DEFINER. O lab seleciona secret.s.note para a coluna name projetada. SELECT direto em secret.s é 1142.

Sem esse sql_mode o mesmo JSON é armazenado como um nome literal. A aspa permanece dado.

Como eu encontrei

Mesma caçada do 26.7.0. Crit/High não publicados do daemon padrão estava vazio. O JSON Duality DML ainda concatena valores.

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

create_sctx_guard instala view_sctx antes de run_substmt. O sql_mode do invocador é o que parse_sql vê.

Caminhos errados: SQL SECURITY DEFINER entre o nome da view e AS é 1064 (o padrão já é DEFINER). O mesmo name da linha atual é ignorado (is_equal); injete contra um valor diferente. O etag é obrigatório.

Lab

cd lab
./run.sh

Imagem mysql:26.7.0. Publicado 127.0.0.1:18640. View app.dv DEFINER root@% sobre app.t. Segredo em secret.s. A vítima tem apenas SELECT/INSERT/UPDATE na view.

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

A correção

Escape strings de DML do JDV com o mesmo ramo NO_BACKSLASH_ESCAPES que o X Plugin já possui (escape_sql_quote vs escape_string_for_mysql). Parametrize o INSERT/UPDATE gerado. Não faça parse_sql de valores concatenados sob um sctx DEFINER.

Referências

  • github.com/mysql/mysql-server tag mysql-26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
  • sql/json_duality_view/dml.cc append_json_dom / create_sctx_guard
  • Pacotes irmãos: abraxas/mysql-mysqldump-show-tables-overflow · abraxas/mysql-mysqldump-tab-path · abraxas/mysql-mysqlbinlog-raw-path · abraxas/mysql-set-role-leftover
Baixar ferramenta