Werkzeug / Flask Debug
Trenutno dostupno podešavanje za procenu ranjivosti & testiranje proboja. Pokrenite kompletan pentest od bilo kog mesta sa 20+ alata i funkcija koje idu od izviđanja do izveštavanja. Mi ne zamenjujemo pentestere - mi razvijamo prilagođene alate, module za detekciju & eksploataciju kako bismo im vratili nešto vremena da dublje kopaju, otvaraju školjke i zabavljaju se.
Console RCE
Ako je debug aktivan, možete pokušati da pristupite /console
i steknete RCE.
Postoje i nekoliko eksploatacija na internetu poput ove ili jedna u metasploit-u.
Zaštićeno šifrom - Prolazak kroz putanju
U nekim prilikama, /console
krajnja tačka će biti zaštićena šifrom. Ako imate ranjivost prolaska kroz datoteke, možete procuriti sve potrebne informacije za generisanje te šifre.
Eksploatacija PIN-a Werkzeug konzole
Prisilite grešku u debagiranju stranice u aplikaciji da biste videli ovo:
Poruka u vezi sa scenarijem "zaključane konzole" se javlja prilikom pokušaja pristupa Werkzeug-ovom interfejsu za debagiranje, ukazujući na potrebu za PIN-om kako bi se otključala konzola. Predlog je da se iskoristi PIN konzole analiziranjem algoritma generisanja pina u Werkzeug-ovom inicijalnom fajlu za debagiranje (__init__.py
). Mekanizam generisanja pina može se proučiti iz Werkzeug izvornog koda na repozitorijumu, iako se preporučuje da se stvarni serverski kod nabavi putem ranjivosti prolaska kroz fajlove zbog mogućih razlika u verzijama.
__init__.py
). Mekanizam generisanja pina može se proučiti iz Werkzeug izvornog koda na repozitorijumu, iako se preporučuje da se stvarni serverski kod nabavi putem ranjivosti prolaska kroz fajlove zbog mogućih razlika u verzijama.Za iskorišćavanje pina konzole, potrebna su dva skupa promenljivih, probably_public_bits
i private_bits
:
probably_public_bits
probably_public_bits
username
: Odaje na korisnika koji je pokrenuo Flask sesiju.modname
: Obično označen kaoflask.app
.getattr(app, '__name__', getattr(app.__class__, '__name__'))
: Generalno se rešava u Flask.getattr(mod, '__file__', None)
: Predstavlja puni put doapp.py
unutar Flask direktorijuma (npr./usr/local/lib/python3.5/dist-packages/flask/app.py
). Akoapp.py
nije primenljiv, pokušajte saapp.pyc
.
private_bits
private_bits
uuid.getnode()
: Dohvata MAC adresu trenutne mašine, sastr(uuid.getnode())
prevodi je u decimalni format.Da biste odredili MAC adresu servera, morate identifikovati aktivni mrežni interfejs koji koristi aplikacija (npr.
ens3
). U slučaju neizvesnosti, procuretajte/proc/net/arp
da biste pronašli ID uređaja, zatim izvucite MAC adresu iz/sys/class/net/<device id>/address
.Konverziju heksadecimalne MAC adrese u decimalni format možete izvršiti na sledeći način:
get_machine_id()
: Spaja podatke iz/etc/machine-id
ili/proc/sys/kernel/random/boot_id
sa prvom linijom/proc/self/cgroup
nakon poslednje kosine (/
).
Last updated