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 inatoa muundo unaojulikana kama large objects, inayopatikana kupitia jedwali la pg_largeobject
, iliyoundwa kwa ajili ya kuhifadhi aina kubwa za data, kama picha au hati za PDF. Njia hii ina faida zaidi kuliko kazi ya COPY TO
kwani inaruhusu kuhamasisha data kurudi kwenye mfumo wa faili, kuhakikisha nakala halisi ya faili ya awali inahifadhiwa.
Ili kuhifadhi faili kamili ndani ya jedwali hili, kitu kinapaswa kuundwa katika jedwali la pg_largeobject
(kinachojulikana kwa LOID), ikifuatiwa na kuingiza vipande vya data, kila kimoja kikiwa na ukubwa wa 2KB, ndani ya kitu hiki. Ni muhimu kwamba vipande hivi viwe na ukubwa wa 2KB (ikiwa na uwezekano wa kutengwa kwa kipande cha mwisho) ili kuhakikisha kazi ya kuhamasisha inafanya kazi ipasavyo.
Ili kugawanya data yako ya binary katika vipande vya 2KB, amri zifuatazo zinaweza kutekelezwa:
Ili kuandika kila faili katika Base64 au Hex, amri zilizo hapa chini zinaweza kutumika:
Muhimu: Wakati wa kuendesha mchakato huu kiotomatiki, hakikisha kutuma vipande vya 2KB vya bytes za maandiko safi. Faili zilizowekwa kwa hex zita hitaji 4KB za data kwa kila kipande kutokana na kuongezeka kwa ukubwa, wakati faili zilizowekwa kwa Base64 zinafuata formula ceil(n / 3) * 4
.
Maudhui ya vitu vikubwa vinaweza kuonyeshwa kwa madhumuni ya urekebishaji kwa kutumia:
Using lo_creat
& Base64
Ili kuhifadhi data za binary, LOID kwanza inaundwa:
Katika hali zinazohitaji udhibiti sahihi, kama vile kutumia Blind SQL Injection, lo_create
inapendekezwa kwa ajili ya kubainisha LOID iliyowekwa.
Vipande vya data vinaweza kisha kuingizwa kama ifuatavyo:
Ili kuhamasisha na huenda kufuta kitu kikubwa baada ya matumizi:
Kutumia lo_import
& Hex
Kazi ya lo_import
inaweza kutumika kuunda na kubainisha LOID kwa kitu kikubwa:
Baada ya kuunda kitu, data inaingizwa kwa kila ukurasa, kuhakikisha kila kipande hakizidi 2KB:
Ili kukamilisha mchakato, data inasafirishwa na kitu kikubwa kinafuta:
Imepangwa kwamba vitu vikubwa vinaweza kuwa na ACLs (Orodha za Udhibiti wa Ufikiaji), ambayo inaweza kuzuia ufikiaji hata kwa vitu vilivyoundwa na mtumiaji wako. Hata hivyo, vitu vya zamani vyenye ACLs za kuruhusu vinaweza bado kupatikana kwa ajili ya kuhamasisha maudhui.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)