Python Internal Read Gadgets

Support HackTricks

Taarifa Msingi

Mazingira tofauti ya udhaifu kama Python Format Strings au Uchafuzi wa Darasa yanaweza kukuruhusu kusoma data ya ndani ya python lakini haitakuruhusu kutekeleza nambari. Hivyo, mchunguzi wa mtandao atahitaji kutumia vibali hivi vya kusoma ili kupata mamlaka nyeti na kukuza udhaifu.

Flask - Soma funguo ya siri

Ukurasa mkuu wa programu ya Flask labda utakuwa na app kifaa cha jumla ambapo hii siri imewekwa.

app = Flask(__name__, template_folder='templates')
app.secret_key = '(:secret:)'

Katika kesi hii ni rahisi kupata ufikiaji wa kipengee hiki kwa kutumia kifaa chochote cha kufikia vitu vya ulimwengu kutoka kwenye Ukurasa wa Kupitisha Mchanga wa Python.

Katika kesi ambapo uwazi upo kwenye faili tofauti ya python, unahitaji kifaa cha kupita faili ili ufikie faili kuu ili kupata kipengee cha ulimwengu app.secret_key kubadilisha funguo ya siri ya Flask na kuweza kupandisha vyeo ukiwa na funguo hii.

Mzigo kama huu kutoka kwenye andiko hili:

__init__.__globals__.__loader__.__init__.__globals__.sys.modules.__main__.app.secret_key

Tumia mzigo huu wa kubadilisha app.secret_key (jina katika programu yako linaweza kuwa tofauti) ili uweze kusaini vidakuzi vya flask vipya na vyenye mamlaka zaidi.

Werkzeug - machine_id na uuid ya node

Kutumia mzigo huu kutoka kwenye andiko hili utaweza kupata machine_id na uuid ya node, ambayo ni siri kuu unayohitaji kuunda pin ya Werkzeug unayoweza kutumia kufikia konsoli ya python katika /console ikiwa hali ya kurekebisha makosa imewezeshwa:

{ua.__class__.__init__.__globals__[t].sys.modules[werkzeug.debug]._machine_id}
{ua.__class__.__init__.__globals__[t].sys.modules[werkzeug.debug].uuid._node}

Tafadhali kumbuka unaweza kupata njia ya seva ya ndani kwa app.py kwa kuzalisha kosa fulani kwenye ukurasa wa wavuti ambao utakupa njia hiyo.

Ikiwa udhaifu uko kwenye faili tofauti ya python, angalia hila ya awali ya Flask ya kupata vitu kutoka kwa faili kuu ya python.

Support HackTricks

Last updated