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-mysqldump-tab-path — MySQL Community Server 26.7.0 - Élevé - mysqldump --tab chemin résiduel - écriture de fichier client | Kitploit
Outils/GitHubGitHub/abraxas/mysql-mysqldump-tab-path
Analyse des VulnérabilitésExploitationExploitation d'Applications WebCollecte d'InformationsTests d'IntrusionSécurité des Bases de DonnéesLabs et Pratique
GitHubabraxas/mysql-mysqldump-tab-path

mysql-mysqldump-tab-path

MySQL Community Server 26.7.0 - Élevé - mysqldump --tab chemin résiduel - écriture de fichier client

Voir le dépôt
1il y a 9 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-mysqldump-tab-path

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  mysql-mysqldump-tab-path

mysql-mysqldump-tab-path

Classe : Écriture de fichier (client) Portée : Distante (UI:R)

MySQL Community Server mysqldump 26.7.0 (06a5c1c) - Oracle

mysqldump --tab=DIR écrit un .sql par table en utilisant fn_format sans MY_REPLACE_DIR. Un nom hostile dans SHOW TABLES contenant / ou .. conserve ce répertoire. DIR est ignoré. L'UID du dump my_fopen le chemin.

--tab est documenté comme un mode local car le .txt passe par le serveur INTO OUTFILE. Le .sql reste une écriture côté client.

IDpas encore de CVE
ClasseÉcriture de fichier (client --tab .sql)
PortéeDistante (la victime exécute mysqldump --tab contre un MySQL attaquant ; UI:R)
CWECWE-22
CVSSÉlevé : 8.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
ProduitMySQL Community Server mysqldump
Affecté26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
Authla victime exécute mysqldump --tab=DIR contre un MySQL attaquant
LicenceGNU Affero GPL v3.0
Lab127.0.0.1 uniquement. Témoin .sql en dehors de DIR.

Ce qu'un attaquant peut faire

Monter un serveur au protocole MySQL. Répondre à SHOW TABLES avec /abs/path ou ../outside. L'opérateur qui a lancé mysqldump --tab=/backup testdb écrit /abs/path.sql (ou un chemin relatif au cwd) en tant qu'UID du dump.

Écraser tout fichier que cet UID peut créer. Même classe qu'un client de sauvegarde qui fait confiance à un nom de fichier distant. Le chemin .txt INTO OUTFILE est côté serveur FILE. Le résidu est le .sql côté client.

Un vrai mysqld n'émettra pas un nom de table contenant /. Le résidu est le client.

Comment je l'ai trouvé

Même chasse sur la 26.7.0 que mysqldump SHOW TABLES overflow. Le démon par défaut était vide. Les outils clients faisaient toujours confiance à SHOW TABLES. L'overflow était un résidu. --tab était le suivant.

static FILE *open_sql_file_for_table(const char *table, int flags) {
  FILE *res;
  char filename[FN_REFLEN], tmp_path[FN_REFLEN];
  convert_dirname(tmp_path, path, NullS);
  res = my_fopen(fn_format(filename, table, tmp_path, ".sql",
                           MYF(MY_UNPACK_FILENAME | MY_APPEND_EXT)),
                 flags, MYF(MY_WME));
  return res;
}

mysys/mf_format.cc : si dirname_part(name) est non vide et que MY_REPLACE_DIR est désactivé, le dir fourni n'est pas utilisé.

Fausses pistes déjà consignées : traiter un vrai mysqld comme oracle ; mourir à SHOW TABLE STATUS avant SHOW CREATE TABLE (le .sql ne s'ouvre qu'après la réussite de CREATE) ; appeler INTO OUTFILE .txt le résidu ; un nom de 64 Kio qui re-déclenche l'overflow G1.

Ce n'est pas MariaDB CVE-2025-13699 (traversée de nom de vue mariadb-dump). Même classe, copie MySQL Community.

Lab

cd lab
./run.sh

Image mysql:26.7.0. --tab=/work/tabdir. La table témoin de contrôle t écrit work/tabdir/t.sql. La table témoin de traversée /work/oracle/MYSQL-DUMP-TAB-TRAVERSAL-WITNESS écrit work/oracle/MYSQL-DUMP-TAB-TRAVERSAL-WITNESS.sql. Publié sur 127.0.0.1:18610 / 18611. Le lier à la loopback.

control-sql=yes
traversal-outside=yes
SUCCESS mysql-mysqldump-tab-path ... MYSQL-DUMP-TAB-TRAVERSAL-WITNESS

Le correctif

Passer MY_REPLACE_DIR à fn_format pour les fichiers clients --tab, ou prendre d'abord le basename du nom de table. --tab=DIR devrait signifier DIR.

Références

  • github.com/mysql/mysql-server tag mysql-26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
  • client/mysqldump.cc open_sql_file_for_table
  • mysys/mf_format.cc
  • Pack d'overflow associé : abraxas/mysql-mysqldump-show-tables-overflow
Télécharger l’outil