MySQL File priv to SSRF/RCE
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
Questo è un riepilogo delle tecniche MySQL/MariaDB/Percona da https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/.
Server-Side Request Forgery (SSRF) tramite Funzioni SQL
Nellâesplorazione dellâexfiltrazione di dati SQL Out of Band, la funzione LOAD_FILE() è comunemente utilizzata per avviare richieste di rete. Tuttavia, questa funzione è limitata dal sistema operativo su cui opera e dalle configurazioni di avvio del database.
La variabile globale secure_file_priv, se non impostata, predefinisce a /var/lib/mysql-files/, limitando lâaccesso ai file a questa directory a meno che non sia impostata su una stringa vuota (""). Questa modifica richiede modifiche nel file di configurazione del database o nei parametri di avvio.
Dato che secure_file_priv è disabilitato (""), e assumendo che i permessi necessari per i file e file_priv siano concessi, i file al di fuori della directory designata possono essere letti. Tuttavia, la capacitĂ di queste funzioni di effettuare chiamate di rete dipende fortemente dal sistema operativo. Nei sistemi Windows, le chiamate di rete a percorsi UNC sono fattibili grazie alla comprensione delle convenzioni di denominazione UNC da parte del sistema operativo, portando potenzialmente allâexfiltrazione di hash NTLMv2.
Questo metodo SSRF è limitato alla porta TCP 445 e non consente la modifica del numero di porta, sebbene possa essere utilizzato per accedere a condivisioni con pieni privilegi di lettura e, come dimostrato in ricerche precedenti, per rubare hash per ulteriori sfruttamenti.
Esecuzione Remota di Codice (RCE) tramite Funzioni Definite dallâUtente (UDF)
I database MySQL offrono lâuso di Funzioni Definite dallâUtente (UDF) da file di libreria esterni. Se queste librerie sono accessibili allâinterno di directory specifiche o nel $PATH del sistema, possono essere invocate da MySQL.
Questa tecnica consente lâesecuzione di richieste di rete/HTTP tramite un UDF, a condizione che siano soddisfatte diverse condizioni, tra cui lâaccesso in scrittura a @@plugin_dir, file_priv impostato su Y e secure_file_priv disabilitato.
Ad esempio, la libreria lib_mysqludf_sys o altre librerie UDF che abilitano richieste HTTP possono essere caricate per eseguire SSRF. Le librerie devono essere trasferite al server, il che può essere realizzato attraverso la codifica esadecimale o base64 del contenuto della libreria e poi scrivendolo nella directory appropriata.
Il processo varia se @@plugin_dir non è scrivibile, specialmente per le versioni di MySQL superiori a v5.0.67. In tali casi, devono essere utilizzati percorsi alternativi che siano scrivibili.
Lâautomazione di questi processi può essere facilitata da strumenti come SQLMap, che supporta lâiniezione UDF, e per iniezioni SQL cieche, possono essere utilizzate tecniche di reindirizzamento dellâoutput o di smuggling delle richieste DNS.
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
HackTricks

