Big Binary Files Upload (PostgreSQL)
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
PostgreSQL nudi strukturu poznatu kao veliki objekti, dostupnu putem tabele pg_largeobject
, koja je dizajnirana za skladištenje velikih tipova podataka, kao što su slike ili PDF dokumenti. Ovaj pristup je prednost u odnosu na funkciju COPY TO
jer omogućava izvoz podataka nazad u fajl sistem, osiguravajući da se tačna replika originalnog fajla održava.
Za skladištenje kompletnog fajla unutar ove tabele, objekat mora biti kreiran u tabeli pg_largeobject
(identifikovan LOID-om), nakon čega se podaci dele u delove, svaki veličine 2KB, u ovaj objekat. Ključno je da ovi delovi budu tačno 2KB u veličini (sa mogućim izuzecima poslednjeg dela) kako bi se osiguralo da funkcija izvoza radi ispravno.
Da biste podelili svoje binarne podatke u delove od 2KB, mogu se izvršiti sledeće komande:
Za kodiranje svakog fajla u Base64 ili Hex, mogu se koristiti sledeće komande:
Важно: При аутоматизацији овог процеса, уверите се да шаљете делове од 2KB чистог текста. Хекс кодирани фајлови ће захтевати 4KB података по делу због удвостручења величине, док фајлови кодирани у Base64 следе формулу ceil(n / 3) * 4
.
Садржај великих објеката може се прегледати у сврху дебаговања користећи:
Koristeći lo_creat
i Base64
Da bi se sačuvali binarni podaci, prvo se kreira LOID:
U situacijama koje zahtevaju preciznu kontrolu, kao što je iskorišćavanje Blind SQL Injection, lo_create
se preferira za određivanje fiksnog LOID-a.
Podaci se mogu umetnuti na sledeći način:
Da biste eksportovali i potencijalno obrisali veliki objekat nakon upotrebe:
Koristeći lo_import
i Hex
Funkcija lo_import
može se koristiti za kreiranje i određivanje LOID-a za veliki objekat:
Nakon kreiranja objekta, podaci se unose po stranici, osiguravajući da svaki deo ne prelazi 2KB:
Da bi se proces završio, podaci se izvoze i veliki objekat se briše:
Napomena je da veliki objekti mogu imati ACL-ove (Liste Kontrole Pristupa), što može ograničiti pristup čak i objektima koje je kreirao vaš korisnik. Međutim, stariji objekti sa permisivnim ACL-ovima mogu i dalje biti dostupni za ekfiltraciju sadržaja.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)