RCE with PostgreSQL Languages
PostgreSQL Jezici
PostgreSQL baza podataka do koje ste dobili pristup može imati instalirane različite skriptne jezike koje možete zloupotrebiti da izvršite proizvoljni kod.
Možete ih pokrenuti:
Većina skriptnih jezika koje možete instalirati u PostgreSQL-u ima 2 verzije: pouzdanu i nepouzdanu. Nepouzdana verzija će imati ime koje se završava sa "u" i to će biti verzija koja će vam omogućiti da izvršite kod i koristite druge zanimljive funkcije. Ovo su jezici koji su zanimljivi ako su instalirani:
plpythonu
plpython3u
plperlu
pljavaU
plrubyu
... (bilo koji drugi programski jezik koji koristi nesigurnu verziju)
Ako primetite da je zanimljiv jezik instaliran, ali je nepouzdan prema PostgreSQL-u (lanpltrusted
je false
), možete pokušati da mu verujete sa sledećom linijom kako PostgreSQL ne bi primenjivao nikakva ograničenja:
Ako ne vidite jezik, možete pokušati da ga učitate sa (morate biti superadmin):
Da biste izvršili udaljeni kod izvršavanja (RCE) pomoću jezika plpythonu/plpython3u, prvo morate proveriti da li je ova jezička ekstenzija instalirana na ciljnom PostgreSQL serveru. Možete to uraditi izvršavanjem sledećeg SQL upita:
Ako je jezička ekstenzija prisutna, možete je koristiti za izvršavanje proizvoljnog koda. Evo primera SQL upita koji demonstrira RCE:
Zamenite COMMAND
sa željenom komandom koju želite da izvršite na ciljnom sistemu. Na primer, možete koristiti ls
komandu da biste prikazali sadržaj direktorijuma. Nakon izvršavanja SQL upita, komanda će biti izvršena na ciljnom sistemu.
Napomena da je moguće kompajlirati sigurne verzije kao "nesigurne". Pogledajte ovde za primer. Stoga uvek vredi pokušati izvršiti kod čak i ako pronađete samo poverljivu verziju instaliranu.
plpythonu/plpython3u
pgSQL
Proverite sledeću stranicu:
pagePL/pgSQL Password BruteforceC
Proverite sledeću stranicu:
pageRCE with PostgreSQL ExtensionsLast updated