Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
mysql-mysqldump-tab-path — MySQL Community Server 26.7.0 - Alta - mysqldump --tab percorso residuo - scrittura file client | Kitploit
Strumenti/GitHubGitHub/abraxas/mysql-mysqldump-tab-path
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebRaccolta InformazioniPenetration TestingSicurezza dei DatabaseLab e Pratica
GitHub
abraxas/mysql-mysqldump-tab-path

mysql-mysqldump-tab-path

MySQL Community Server 26.7.0 - Alta - mysqldump --tab percorso residuo - scrittura file client

Vedi Repository
19 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Abraxas Labs - mysql-mysqldump-tab-path

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

mysql-mysqldump-tab-path

Classe: Scrittura di file (client) Portata: Remota (UI:R)

MySQL Community Server mysqldump 26.7.0 (06a5c1c) - Oracle

mysqldump --tab=DIR scrive un .sql per tabella usando fn_format senza MY_REPLACE_DIR. Un nome ostile in SHOW TABLES contenente / o .. mantiene quella directory. DIR viene ignorato. L'UID del dump esegue my_fopen sul percorso.

--tab è documentato come modalità stessa-macchina perché il .txt passa attraverso il server INTO OUTFILE. Il .sql è comunque una scrittura client.

IDnessuna CVE al momento
ClasseScrittura di file (client --tab .sql)
PortataRemota (la vittima esegue mysqldump --tab contro un MySQL dell'attaccante; UI:R)
CWECWE-22
CVSSAlto: 8.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
ProdottoMySQL Community Server mysqldump
Affetto26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
Authla vittima esegue mysqldump --tab=DIR contro un MySQL dell'attaccante
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1. Testimone .sql fuori da DIR.

Cosa può fare un attaccante

Mettere in piedi un server con protocollo MySQL. Rispondere a SHOW TABLES con /abs/path o ../outside. L'operatore che ha eseguito mysqldump --tab=/backup testdb scrive /abs/path.sql (o un percorso relativo alla cwd) con l'UID del dump.

Sovrascrivere qualsiasi file che quell'UID può creare. Stessa classe di un client di backup che si fida di un nome file remoto. Il percorso .txt INTO OUTFILE è FILE lato server. Il residuo è il .sql lato client.

Un vero mysqld non emetterà un nome di tabella con /. Il residuo è il client.

Come l'ho trovato

Stessa caccia alla 26.7.0 di mysqldump SHOW TABLES overflow. Il daemon predefinito era vuoto. Gli strumenti client si fidavano comunque di SHOW TABLES. L'overflow era un residuo. --tab era il successivo.

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: se dirname_part(name) non è vuoto e MY_REPLACE_DIR è disattivato, la dir fornita non viene usata.

Vicoli ciechi già registrati: trattare un vero mysqld come oracolo; morire a SHOW TABLE STATUS prima di SHOW CREATE TABLE (il .sql si apre solo dopo che CREATE ha successo); chiamare INTO OUTFILE .txt il residuo; un nome da 64KiB che colpisce di nuovo l'overflow G1.

Non è MariaDB CVE-2025-13699 (traversal del nome di vista in mariadb-dump). Stessa classe, copia MySQL Community.

Lab

cd lab
./run.sh

Immagine mysql:26.7.0. --tab=/work/tabdir. La tabella stub di controllo t scrive work/tabdir/t.sql. La tabella stub di traversal /work/oracle/MYSQL-DUMP-TAB-TRAVERSAL-WITNESS scrive work/oracle/MYSQL-DUMP-TAB-TRAVERSAL-WITNESS.sql. Pubblicati 127.0.0.1:18610 / 18611. Associalo al loopback.

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

La correzione

Passare MY_REPLACE_DIR a fn_format per i file client --tab, oppure prendere prima il basename del nome della tabella. --tab=DIR dovrebbe significare DIR.

Riferimenti

  • github.com/mysql/mysql-server tag mysql-26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
  • client/mysqldump.cc open_sql_file_for_table
  • mysys/mf_format.cc
  • Pacchetto overflow correlato: abraxas/mysql-mysqldump-show-tables-overflow
Scarica lo strumento