Python Internal Read Gadgets
Last updated
Last updated
Naučite i vežbajte AWS hakovanje:HackTricks Obuka AWS Crveni Tim Stručnjak (ARTE) Naučite i vežbajte GCP hakovanje: HackTricks Obuka GCP Crveni Tim Stručnjak (GRTE)
Različite ranjivosti poput Python Format Stringova ili Zagađenje Klasa mogu vam omogućiti da čitate interne podatke Pythona ali vam neće dozvoliti izvršavanje koda. Stoga, pentester će morati maksimalno iskoristiti ova dozvola za čitanje kako bi dobio osetljive privilegije i eskalirao ranjivost.
Glavna stranica Flask aplikacije verovatno će imati app
globalni objekat gde je ovaj tajni ključ konfigurisan.
U ovom slučaju moguće je pristupiti ovom objektu koristeći bilo koji gedžet za pristup globalnim objektima sa Bypass Python sandboxes stranice.
U slučaju kada je ranjivost u drugom Python fajlu, potreban vam je gedžet za pretragu fajlova kako biste došli do glavnog fajla i pristupili globalnom objektu app.secret_key
kako biste promenili Flask tajni ključ i bili u mogućnosti da dignete privilegije znajući ovaj ključ.
Payload poput ovog iz ovog writeupa:
Koristite ovaj payload da promenite app.secret_key
(naziv u vašoj aplikaciji može biti drugačiji) kako biste mogli da potpišete nove i privilegovane flask kolačiće.
Koristeći ovaj payload iz ovog writeupa bićete u mogućnosti da pristupite machine_id-u i uuid nodu, koji su glavne tajne koje su vam potrebne da generišete Werkzeug pin koji možete koristiti da pristupite python konzoli na /console
ako je omogućen debug režim:
Imajte na umu da možete dobiti lokalnu putanju servera do app.py
generišući neku grešku na veb stranici koja će vam omogućiti pristup putanji.
Ako je ranjivost u drugom Python fajlu, proverite prethodni trik sa Flask-om kako biste pristupili objektima iz glavnog Python fajla.
Učite i vežbajte hakovanje AWS-a:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte hakovanje GCP-a: HackTricks Training GCP Red Team Expert (GRTE)