Python Internal Read Gadgets
Reading time: 3 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Basic Information
Vulnerabilities tofauti kama Python Format Strings au Class Pollution zinaweza kukuwezesha kusoma data za ndani za python lakini hazitakuruhusu kuendesha msimbo. Hivyo, pentester atahitaji kutumia vibaya ruhusa hizi za kusoma ili kupata mamlaka nyeti na kuongeza udhaifu.
Flask - Read secret key
Ukurasa mkuu wa programu ya Flask huenda ukawa na app
kitu cha kimataifa ambacho siri hii imewekwa.
app = Flask(__name__, template_folder='templates')
app.secret_key = '(:secret:)'
Katika kesi hii, inawezekana kufikia kitu hiki kwa kutumia gadget yoyote ili kufikia vitu vya kimataifa kutoka kwenye ukurasa wa Bypass Python sandboxes.
Katika kesi ambapo udhaifu uko katika faili tofauti ya python, unahitaji gadget ili kupita kwenye faili ili kufikia faili kuu ili kufikia kitu cha kimataifa app.secret_key
kubadilisha funguo ya siri ya Flask na kuwa na uwezo wa kuinua mamlaka ukijua funguo hii.
Payload kama hii kutoka kwenye andiko hili:
__init__.__globals__.__loader__.__init__.__globals__.sys.modules.__main__.app.secret_key
Tumia payload hii kubadilisha app.secret_key
(jina katika programu yako linaweza kuwa tofauti) ili uweze kusaini vidakuzi vya flask vipya na vya kibali zaidi.
Werkzeug - machine_id na node uuid
Kwa kutumia payload hizi kutoka kwa andiko hili utaweza kufikia machine_id na uuid node, ambazo ni siri kuu unazohitaji ili kuunda pin ya Werkzeug unaweza kutumia kufikia console ya python katika /console
ikiwa mode ya debug imewezeshwa:
{ua.__class__.__init__.__globals__[t].sys.modules[werkzeug.debug]._machine_id}
{ua.__class__.__init__.__globals__[t].sys.modules[werkzeug.debug].uuid._node}
warning
Kumbuka kwamba unaweza kupata njia ya ndani ya seva kwa app.py
kwa kuzalisha kosa kwenye ukurasa wa wavuti ambayo itakupa njia.
Ikiwa udhaifu uko katika faili tofauti la python, angalia hila ya Flask ya awali ili kufikia vitu kutoka kwa faili kuu la python.
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.