Python Internal Read Gadgets
Osnovne informacije
Različite ranjivosti kao što su Python Format Strings ili Class Pollution mogu vam omogućiti čitanje internih podataka Python-a, ali ne i izvršavanje koda. Stoga, pentester će morati da iskoristi ova dozvola za čitanje kako bi dobio osetljive privilegije i eskalirao ranjivost.
Flask - Čitanje tajnog ključa
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 uređaj za pristup globalnim objektima sa stranice Bypass Python sandboxes.
U slučaju kada ranjivost postoji u drugom Python fajlu, potreban vam je uređaj za pretraživanje 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 povećate privilegije znajući ovaj ključ.
Payload poput ovog iz ovog writeup-a:
Koristite ovaj payload da biste promenili 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.
Werkzeug - machine_id i node uuid
Koristeći ove payloade iz ovog writeupa moći ćete da pristupite machine_id i uuid čvoru, koji su glavne tajne koje vam trebaju za generisanje Werkzeug pin-a koji možete koristiti za pristup python konzoli u /console
ako je debug mod omogućen:
Imajte na umu da možete dobiti lokalnu putanju servera do app.py
generisanjem neke greške na veb stranici koja će vam prikazati putanju.
Ako je ranjivost u drugom Python fajlu, proverite prethodni trik za pristup objektima iz glavnog Python fajla.
Last updated