Werkzeug / Flask Debug
Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje. Pokrenite potpuni pentest sa bilo kog mesta uz 20+ alata i funkcija koje idu od rekognicije do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se.
Console RCE
Ako je debug aktivan, možete pokušati da pristupite /console
i dobijete RCE.
Postoji nekoliko eksploata na internetu kao ovaj ili jedan u metasploit-u.
Zaštićeno PIN-om - Putanja Prelaz
U nekim slučajevima, /console
krajnja tačka će biti zaštićena PIN-om. Ako imate ranjivost prelaza datoteka, možete da iscurite sve potrebne informacije za generisanje tog PIN-a.
Werkzeug Console PIN Eksploit
Prisilite stranicu sa greškom za debagovanje u aplikaciji da biste videli ovo:
Poruka u vezi sa scenarijom "konzola zaključana" se pojavljuje kada se pokušava pristupiti debug interfejsu Werkzeug-a, što ukazuje na potrebu za PIN-om za otključavanje konzole. Predlaže se da se iskoristi PIN konzole analizom algoritma za generisanje PIN-a u inicijalizacionom fajlu Werkzeug-a (__init__.py
). Mehanizam generisanja PIN-a može se proučiti iz Werkzeug source code repository, iako se savetuje da se pribavi stvarni kod servera putem ranjivosti u pretraživanju fajlova zbog mogućih razlika u verzijama.
Da bi se iskoristio PIN konzole, potrebna su dva skupa varijabli, probably_public_bits
i private_bits
:
probably_public_bits
probably_public_bits
username
: Odnosi se na korisnika koji je pokrenuo Flask sesiju.modname
: Obično označen kaoflask.app
.getattr(app, '__name__', getattr(app.__class__, '__name__'))
: Obično se rešava u Flask.getattr(mod, '__file__', None)
: Predstavlja punu putanju doapp.py
unutar Flask direktorijuma (npr.,/usr/local/lib/python3.5/dist-packages/flask/app.py
). Akoapp.py
nije primenljiv, probajteapp.pyc
.
private_bits
private_bits
uuid.getnode()
: Dohvata MAC adresu trenutne mašine, pri čemustr(uuid.getnode())
prevodi u decimalni format.Da bi se odredila MAC adresa servera, potrebno je identifikovati aktivni mrežni interfejs koji koristi aplikacija (npr.,
ens3
). U slučajevima nesigurnosti, leak/proc/net/arp
da biste pronašli ID uređaja, zatim izvucite MAC adresu iz/sys/class/net/<device id>/address
.Konverzija heksadecimalne MAC adrese u decimalnu može se izvršiti kao što je prikazano u nastavku:
get_machine_id()
: Spaja podatke iz/etc/machine-id
ili/proc/sys/kernel/random/boot_id
sa prvom linijom/proc/self/cgroup
posle poslednjeg kosa (/
).
Last updated