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 bied 'n struktuur bekend as groot voorwerpe, toeganklik via die pg_largeobject
tabel, ontwerp om groot datatipe, soos beelde of PDF-dokumente, te stoor. Hierdie benadering is voordelig bo die COPY TO
funksie aangesien dit die uitvoer van data terug na die lêerstelsel moontlik maak, wat verseker dat 'n presiese replika van die oorspronklike lêer gehandhaaf word.
Om 'n volledige lêer binne hierdie tabel te stoor, moet 'n voorwerp in die pg_largeobject
tabel geskep word (geïdentifiseer deur 'n LOID), gevolg deur die invoeging van datastukke, elk 2KB in grootte, in hierdie voorwerp. Dit is van kardinale belang dat hierdie stukke presies 2KB in grootte is (met die moontlike uitsondering van die laaste stuk) om te verseker dat die uitvoerfunksie korrek werk.
Om jou binaire data in 2KB stukke te verdeel, kan die volgende opdragte uitgevoer word:
Vir die kodering van elke lêer in Base64 of Hex, kan die onderstaande opdragte gebruik word:
Belangrik: Wanneer jy hierdie proses outomatiseer, verseker dat jy stukke van 2KB van duidelike teks bytes stuur. Hex-gecodeerde lêers sal 4KB data per stuk vereis weens die verdubbeling in grootte, terwyl Base64-gecodeerde lêers die formule ceil(n / 3) * 4
volg.
Die inhoud van die groot voorwerpe kan vir foutopsporing doeleindes besigtig word met:
Using lo_creat
& Base64
Om binêre data te stoor, word 'n LOID eers geskep:
In situasies wat presiese beheer vereis, soos om 'n Blind SQL Injection te benut, word lo_create
verkies om 'n vaste LOID te spesifiseer.
Data stukke kan dan soos volg ingevoeg word:
Om die groot objek na gebruik te eksporteer en moontlik te verwyder:
Gebruik van lo_import
& Hex
Die lo_import
funksie kan gebruik word om 'n LOID vir 'n groot objek te skep en te spesifiseer:
Na die skep van die objek, word data per bladsy ingevoeg, wat verseker dat elke stuk nie 2KB oorskry nie:
Om die proses te voltooi, word die data uitgevoer en die groot objek verwyder:
Dit word opgemerk dat groot voorwerpe dalk ACL's (Toegangsbeheerlys) het, wat toegang kan beperk selfs tot voorwerpe wat deur jou gebruiker geskep is. egter, ouer voorwerpe met toegeeflike ACL's mag steeds toeganklik wees vir inhoudsuitvoer.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)