Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
mysql-mysqldump-tab-path — MySQL Community Server 26.7.0 - Hoch - mysqldump --tab Pfad-Rest - Client-Dateischreibvorgang | Kitploit
Tools/GitHubGitHub/abraxas/mysql-mysqldump-tab-path
SchwachstellenanalyseExploitationWebanwendungs-ExploitationInformationsbeschaffungPenetrationstestsDatenbanksicherheitLabs & Praxis
GitHubabraxas/mysql-mysqldump-tab-path

mysql-mysqldump-tab-path

MySQL Community Server 26.7.0 - Hoch - mysqldump --tab Pfad-Rest - Client-Dateischreibvorgang

Repository anzeigen
1vor 9 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Abraxas Labs - mysql-mysqldump-tab-path

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

mysql-mysqldump-tab-path

Klasse: Dateischreiben (Client) Reichweite: Remote (UI:R)

MySQL Community Server mysqldump 26.7.0 (06a5c1c) - Oracle

mysqldump --tab=DIR schreibt eine .sql pro Tabelle unter Verwendung von fn_format ohne MY_REPLACE_DIR. Ein feindseliger SHOW TABLES-Name mit / oder .. behält dieses Verzeichnis bei. DIR wird ignoriert. Die Dump-UID my_fopent den Pfad.

--tab ist als Same-Machine-Modus dokumentiert, weil die .txt über das serverseitige INTO OUTFILE läuft. Die .sql ist dennoch ein Client-Schreibvorgang.

IDnoch keine CVE
KlasseDateischreiben (Client --tab .sql)
ReichweiteRemote (Opfer führt mysqldump --tab gegen einen Angreifer-MySQL aus; UI:R)
CWECWE-22
CVSSHigh: 8.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
ProduktMySQL Community Server mysqldump
Betroffen26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
AuthOpfer führt mysqldump --tab=DIR gegen einen Angreifer-MySQL aus
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1. Witness .sql außerhalb von DIR.

Was ein Angreifer tun kann

Einen MySQL-Protokoll-Server aufsetzen. Auf SHOW TABLES mit /abs/path oder ../outside antworten. Der Operator, der mysqldump --tab=/backup testdb ausgeführt hat, schreibt /abs/path.sql (oder einen Pfad relativ zum cwd) als die Dump-UID.

Jede Datei überschreiben, die diese UID erstellen kann. Gleiche Klasse wie ein Backup-Client, der einem entfernten Dateinamen vertraut. Der .txt-INTO-OUTFILE-Pfad ist serverseitiges FILE. Der Überrest ist die Client-.sql.

Ein echtes mysqld wird keinen Tabellennamen mit / ausgeben. Der Überrest ist der Client.

Wie ich es gefunden habe

Dieselbe 26.7.0-Jagd wie mysqldump SHOW TABLES overflow. Der Standard-Daemon war leer. Client-Tools vertrauten weiterhin SHOW TABLES. Der Overflow war ein Überrest. --tab war der nächste.

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: Wenn dirname_part(name) nicht leer ist und MY_REPLACE_DIR aus ist, wird das angegebene dir nicht verwendet.

Bereits dokumentierte Irrwege: ein echtes mysqld als Orakel behandeln; bei SHOW TABLE STATUS vor SHOW CREATE TABLE sterben (die .sql wird erst geöffnet, nachdem CREATE erfolgreich war); INTO OUTFILE .txt als Überrest bezeichnen; ein 64KiB-Name, der den G1-Overflow erneut auslöst.

Nicht MariaDB CVE-2025-13699 (mariadb-dump View-Name-Traversal). Gleiche Klasse, MySQL-Community-Kopie.

Lab

cd lab
./run.sh

Image mysql:26.7.0. --tab=/work/tabdir. Control-Stub-Tabelle t schreibt work/tabdir/t.sql. Traversal-Stub-Tabelle /work/oracle/MYSQL-DUMP-TAB-TRAVERSAL-WITNESS schreibt work/oracle/MYSQL-DUMP-TAB-TRAVERSAL-WITNESS.sql. Veröffentlicht 127.0.0.1:18610 / 18611. Binde es an Loopback.

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

Der Fix

MY_REPLACE_DIR in fn_format für --tab-Client-Dateien übergeben, oder zuerst basename des Tabellennamens nehmen. --tab=DIR sollte DIR bedeuten.

Referenzen

  • github.com/mysql/mysql-server Tag mysql-26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
  • client/mysqldump.cc open_sql_file_for_table
  • mysys/mf_format.cc
  • Schwester-Overflow-Paket: abraxas/mysql-mysqldump-show-tables-overflow
Tool herunterladen