Python Interne Lees Gadgets

Reading time: 3 minutes

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks

Basiese Inligting

Verskillende kwesbaarhede soos Python Formaat Strings of Klas Besoedeling mag jou toelaat om python interne data te lees maar sal jou nie toelaat om kode uit te voer nie. Daarom sal 'n pentester die meeste van hierdie lees toestemmings moet benut om sensitiewe voorregte te verkry en die kwesbaarheid te eskaleer.

Flask - Lees geheime sleutel

Die hoofblad van 'n Flask-toepassing sal waarskynlik die app globale objek hĂȘ waar hierdie geheime sleutel geconfigureer is.

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

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

In die geval waar die kwesbaarheid in 'n ander python-lĂȘer is, benodig jy 'n gadget om lĂȘers te traverseer om by die hoof een te kom om toegang tot die globale objek app.secret_key te verkry om die Flask geheime sleutel te verander en in staat te wees om privileges te eskaleer deur hierdie sleutel te ken.

'n Payload soos hierdie van hierdie skrywe:

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

Gebruik hierdie payload om app.secret_key (die naam in jou app mag anders wees) te verander sodat jy nuwe en meer bevoegdheid flask koekies kan teken.

Werkzeug - machine_id en node uuid

Deur hierdie payload uit hierdie skrywe te gebruik sal jy toegang hĂȘ tot die machine_id en die uuid node, wat die hoofdokumente 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 foutopsporing modus geaktiveer is:

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

warning

Let daarop dat jy die bediener 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-truk om toegang tot die objekte van die hoof python-lĂȘer te verkry.

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks