Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
mysql-jdv-definer-sqli — MySQL Community Server 26.7.0 - Élevé - Injection SQL via DEFINER avec JSON Duality - NO_BACKSLASH_ESCAPES | Kitploit
Outils/GitHubGitHub/abraxas/mysql-jdv-definer-sqli
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionSécurité des Bases de DonnéesLabs et Pratique
GitHubabraxas/mysql-jdv-definer-sqli

mysql-jdv-definer-sqli

MySQL Community Server 26.7.0 - Élevé - Injection SQL via DEFINER avec JSON Duality - NO_BACKSLASH_ESCAPES

Voir le dépôt
13il y a 11 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

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 Portée : Distante

MySQL Community Server mysqld 26.7.0 (06a5c1c) - Oracle

Le DML JSON Duality concatène les valeurs de chaînes JSON avec escape_string_for_mysql (backslash uniquement), puis parse_sql sous le sql_mode de l'invocateur après bascule vers le sctx du DEFINER de la vue. SET SESSION sql_mode='NO_BACKSLASH_ESCAPES' fait que \' termine le littéral SQL. Une chaîne JSON contenant ' injecte une sous-requête / une liste SET en tant que DEFINER. Labo : un invocateur disposant uniquement de DML sur la vue lit secret.s dans la colonne name projetée.

Le CREATE VIEW par défaut est DEFINER. Le X Plugin gère déjà ce mode. Le JDV non. Conditionné par une fonctionnalité : nécessite une JSON Duality View.

IDpas encore de CVE
ClasseSQLi (DEFINER ; pas de RCE)
PortéeDistante (SQL authentifié ; nécessite du DML sur une JSON Duality View)
CWECWE-89
CVSSÉlevé : 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
ProduitMySQL Community Server mysqld
Affecté26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
Authauthentifié ; INSERT ou UPDATE sur une JSON Duality View
LicenceGNU Affero GPL v3.0
Labo127.0.0.1 uniquement. Témoin dans $.name projeté.

Ce qu'un attaquant peut faire

Détenir du DML sur une JSON Duality View SQL SECURITY DEFINER. SET SESSION sql_mode='NO_BACKSLASH_ESCAPES'. UPDATE (etag issu du SELECT) d'un champ chaîne dont la valeur JSON contient '. Le littéral _utf8mb4 '...' généré se termine. Le reste de l'instruction s'exécute en tant que DEFINER. Le labo sélectionne secret.s.note dans la colonne name projetée. Un SELECT direct sur secret.s renvoie 1142.

Sans ce sql_mode, le même JSON est stocké comme un nom littéral. La citation reste une donnée.

Comment je l'ai trouvé

Même chasse sur 26.7.0. Le démon par défaut non publié Crit/High était vide. Le DML JSON Duality concatène toujours les valeurs.

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

create_sctx_guard installe view_sctx avant run_substmt. Le sql_mode de l'invocateur est ce que voit parse_sql.

Fausses pistes : SQL SECURITY DEFINER entre le nom de la vue et AS renvoie 1064 (le défaut est déjà DEFINER). Le même name que la ligne courante est ignoré (is_equal) ; injectez contre une valeur différente. L'etag est requis.

Labo

cd lab
./run.sh

Image mysql:26.7.0. Publiée sur 127.0.0.1:18640. Vue app.dv DEFINER root@% sur app.t. Secret dans secret.s. La victime dispose uniquement de SELECT/INSERT/UPDATE sur la vue.

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

Le correctif

Échapper les chaînes DML du JDV avec la même branche NO_BACKSLASH_ESCAPES que possède déjà le X Plugin (escape_sql_quote vs escape_string_for_mysql). Paramétrer l'INSERT/UPDATE généré. Ne pas parse_sql les valeurs concaténées sous un sctx DEFINER.

Références

  • github.com/mysql/mysql-server tag mysql-26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
  • sql/json_duality_view/dml.cc append_json_dom / create_sctx_guard
  • Packs frères : abraxas/mysql-mysqldump-show-tables-overflow · abraxas/mysql-mysqldump-tab-path · abraxas/mysql-mysqlbinlog-raw-path · abraxas/mysql-set-role-leftover
Télécharger l’outil