MySQL File priv to SSRF/RCE

Reading time: 3 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks

Ovo je sažetak MySQL/MariaDB/Percona tehnika sa https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/.

Server-Side Request Forgery (SSRF) putem SQL funkcija

U istraživanju SQL Out of Band eksfiltracije podataka, LOAD_FILE() funkcija se obično koristi za iniciranje mrežnih zahteva. Ova funkcija, međutim, je ograničena operativnim sistemom na kojem se koristi i konfiguracijama pokretanja baze podataka.

Globalna promenljiva secure_file_priv, ako nije postavljena, podrazumevano je /var/lib/mysql-files/, ograničavajući pristup datotekama na ovaj direktorijum osim ako nije postavljena na praznu string (""). Ova prilagodba zahteva izmene u konfiguracionom fajlu baze podataka ili parametrima pokretanja.

S obzirom da je secure_file_priv onemogućen (""), i pod pretpostavkom da su potrebne datoteke i file_priv dozvole dodeljene, datoteke van određenog direktorijuma mogu se čitati. Ipak, sposobnost ovih funkcija da izvršavaju mrežne pozive je veoma zavisna od operativnog sistema. Na Windows sistemima, mrežni pozivi ka UNC putanjama su mogući zbog razumevanja operativnog sistema o UNC konvencijama imenovanja, što može dovesti do eksfiltracije NTLMv2 hash-eva.

Ova SSRF metoda je ograničena na TCP port 445 i ne dozvoljava modifikaciju broja porta, iako se može koristiti za pristup deljenjima sa punim privilegijama za čitanje i, kao što je prikazano u prethodnim istraživanjima, za krađu hash-eva za dalju eksploataciju.

Remote Code Execution (RCE) putem User Defined Functions (UDF)

MySQL baze podataka omogućavaju korišćenje User Defined Functions (UDF) iz spoljašnjih biblioteka. Ako su ove biblioteke dostupne unutar specifičnih direktorijuma ili sistemskog $PATH, mogu se pozvati iz MySQL-a.

Ova tehnika omogućava izvršavanje mrežnih/HTTP zahteva putem UDF-a, pod uslovom da su ispunjeni određeni uslovi, uključujući pristup za pisanje na @@plugin_dir, file_priv postavljen na Y, i secure_file_priv onemogućen.

Na primer, biblioteka lib_mysqludf_sys ili druge UDF biblioteke koje omogućavaju HTTP zahteve mogu se učitati za izvršavanje SSRF-a. Biblioteke moraju biti prenete na server, što se može postići heksadecimalnim ili base64 kodiranjem sadržaja biblioteke i zatim pisanjem u odgovarajući direktorijum.

Proces se razlikuje ako @@plugin_dir nije moguće pisati, posebno za MySQL verzije iznad v5.0.67. U takvim slučajevima, alternativne putanje koje su moguće za pisanje moraju se koristiti.

Automatizacija ovih procesa može se olakšati alatima kao što je SQLMap, koji podržava UDF injekciju, a za slepe SQL injekcije, mogu se koristiti tehnike preusmeravanja izlaza ili DNS zahteva.

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks