MySQL File priv to SSRF/RCE
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Dit is 'n opsomming van die MySQL/MariaDB/Percona tegnieke van https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/.
In die verkenning van SQL Out of Band data eksfiltrasie, word die LOAD_FILE()
funksie algemeen gebruik om netwerk versoeke te begin. Hierdie funksie is egter beperk deur die bedryfstelsel waarop dit werk en die databasis se opstartkonfigurasies.
Die secure_file_priv
globale veranderlike, indien nie gestel nie, is standaard op /var/lib/mysql-files/
, wat lêer toegang tot hierdie gids beperk tensy dit op 'n leë string (""
) gestel word. Hierdie aanpassing vereis wysigings in die databasis se konfigurasiefil of opstartparameters.
Aangesien secure_file_priv
gedeaktiveer is (""
), en met die aanname dat die nodige lêer en file_priv
toestemmings toegeken is, kan lêers buite die aangewese gids gelees word. Tog is die vermoë van hierdie funksies om netwerkoproepe te maak hoogs afhanklik van die bedryfstelsel. Op Windows stelsels is netwerkoproepe na UNC paaie haalbaar weens die bedryfstelsel se begrip van UNC naamkonvensies, wat moontlik kan lei tot die eksfiltrasie van NTLMv2 hashes.
Hierdie SSRF metode is beperk tot TCP poort 445 en laat nie poortnommer wysiging toe nie, alhoewel dit gebruik kan word om deelings met volle leesregte te benader en, soos in vorige navorsing gedemonstreer, om hashes te steel vir verdere uitbuiting.
MySQL databasisse bied die gebruik van User Defined Functions (UDF) van eksterne biblioteek lêers aan. As hierdie biblioteke binne spesifieke gidse of die stelsel se $PATH
toeganklik is, kan dit vanuit MySQL aangeroep word.
Hierdie tegniek stel in staat om netwerk/HTTP versoeke deur 'n UDF uit te voer, mits verskeie voorwaardes nagekom word, insluitend skryfreëls tot die @@plugin_dir
, file_priv
gestel op Y
, en secure_file_priv
gedeaktiveer.
Byvoorbeeld, die lib_mysqludf_sys
biblioteek of ander UDF biblioteke wat HTTP versoeke moontlik maak, kan gelaai word om SSRF uit te voer. Die biblioteke moet na die bediener oorgedra word, wat bereik kan word deur die biblioteek se inhoud in hex of base64 te kodifiseer en dit dan na die toepaslike gids te skryf.
Die proses verskil as die @@plugin_dir
nie skryfbaar is nie, veral vir MySQL weergawes bo v5.0.67
. In sulke gevalle moet alternatiewe paaie wat skryfbaar is, gebruik word.
Outomatisering van hierdie prosesse kan gefasiliteer word deur gereedskap soos SQLMap, wat UDF inspuiting ondersteun, en vir blinde SQL inspuitings kan uitvoer herleiding of DNS versoek smuggling tegnieke gebruik word.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)