Python Internal Read Gadgets

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Basiese Inligting

Verskillende kwesbaarhede soos Python-formaatreekse of Klasverontreiniging mag jou in staat stel om Python interne data te lees, maar sal nie toelaat dat jy kode uitvoer nie. Daarom sal 'n pentester die meeste uit hierdie leesregte moet maak om gevoelige bevoegdhede te verkry en die kwesbaarheid te eskaleer.

Flask - Lees geheime sleutel

Die hoofbladsy van 'n Flask-toepassing sal waarskynlik die app globale objek hê waarin hierdie geheime sleutel gekonfigureer is.

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

In hierdie geval is dit moontlik om toegang tot hierdie objek te verkry deur enige gadget te gebruik om globale objekte te benader vanaf die Bypass Python sandboxes page.

In die geval waar die kwesbaarheid in 'n ander Python-lêer is, het jy 'n gadget nodig om deur lêers te blaai om by die hooflêer te kom om die globale objek app.secret_key te benader om die Flask-geheime sleutel te verander en in staat te wees om voorregte te verhoog deur hierdie sleutel te ken.

'n Payload soos hierdie een vanaf hierdie writeup:

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

Gebruik hierdie payload om die app.secret_key (die naam in jou app mag verskil) te verander sodat jy nuwe en meer bevoegdhede flask koekies kan onderteken.

Werkzeug - machine_id en node uuid

Deur hierdie payload van hierdie writeup te gebruik, sal jy toegang hê tot die machine_id en die uuid node, wat die hoofgeheime is wat jy nodig het om die Werkzeug pin te genereer wat jy kan gebruik om toegang te verkry tot die python-konsole in /console as die foutopsporingsmodus geaktiveer is:

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

Let daarop dat jy die bedieners se plaaslike pad na die app.py kan kry deur 'n fout op die webblad te genereer wat jou die pad sal gee.

As die kwesbaarheid in 'n ander Python-lêer is, kyk na die vorige Flask-truuk om toegang tot die voorwerpe van die hoof-Python-lêer te verkry.

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated