Python Internal Read Gadgets
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)
Različite ranjivosti kao što su Python Format Strings ili Class Pollution mogu vam omogućiti da pročitate interne podatke u Pythonu, ali neće vam omogućiti da izvršite kod. Stoga, pentester će morati da iskoristi ove dozvole 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 je moguće pristupiti ovom objektu koristeći bilo koji gadget za pristup globalnim objektima sa stranice za zaobilaženje Python sandboxes.
U slučaju kada je ranjivost u drugom python fajlu, potreban vam je gadget za prelazak između fajlova kako biste došli do glavnog da pristupite globalnom objektu app.secret_key
da promenite Flask tajni ključ i budete u mogućnosti da povećate privilegije znajući ovaj ključ.
Payload poput ovog iz ovog izveštaja:
Koristite ovaj payload da promenite app.secret_key
(ime u vašoj aplikaciji može biti drugačije) kako biste mogli da potpišete nove i privilegovanije flask kolačiće.
Koristeći ove payload-ove iz ovog izveštaja moći ćete da pristupite machine_id i uuid node, koji su glavne tajne koje su vam potrebne da generišete Werkzeug pin koji možete koristiti za pristup python konzoli u /console
ako je debug mode omogućen:
Napomena da možete dobiti lokalnu putanju servera do app.py
generišući neku grešku na veb stranici koja će dati putanju.
Ako je ranjivost u drugom python fajlu, proverite prethodni Flask trik za pristup objektima iz glavnog python fajla.
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)