4.8 KiB
Python Internele Lees Gadgets
{% hint style="success" %}
Leer & oefen AWS Hack: HackTricks Opleiding AWS Red Team Expert (ARTE)
Leer & oefen GCP Hack: HackTricks Opleiding GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Controleer die inskrywingsplanne!
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.
Basiese Inligting
Verskillende kwesbaarhede soos Python Formaat Strings of Klas Besoedeling 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 moet maak van hierdie leesregte om sensitiewe voorregte te verkry en die kwesbaarheid te eskaleer.
Flask - Lees geheime sleutel
Die hoofbladsy van 'n Flask-aansoek sal waarskynlik die app
globale objek hê waar hierdie geheime ingestel 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 net 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 navigeer om by die hooflêer te kom om die globale objek app.secret_key
te benader om die Flask-geheim sleutel te verander en in staat te wees om privileges te eskaleer deur hierdie sleutel te ken.
'n Lading soos hierdie een van hierdie skryfstuk:
{% code overflow="wrap" %}
__init__.__globals__.__loader__.__init__.__globals__.sys.modules.__main__.app.secret_key
{% endcode %}
Gebruik hierdie ladingstuk om app.secret_key
te verander (die naam in jou app kan verskil) sodat jy nuwe en meer voorregte flask-koekies kan teken.
Werkzeug - machine_id en node uuid
Deur hierdie ladingstuk van hierdie skryfstuk te gebruik sal jy in staat wees om die machine_id en die uuid node te ontsluit, wat die hoofgeheime is wat jy nodig het om die Werkzeug-speld te genereer wat jy kan gebruik om toegang tot die python-konsole in /console
te verkry 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}
{% hint style="warning" %}
Let wel dat jy die bedieners se plaaslike pad na die app.py
kan kry deur 'n fout op die webbladsy te veroorsaak wat jou die pad sal gee.
{% endhint %}
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.
{% hint style="success" %}
Leer & oefen AWS-hacking:HackTricks Opleiding AWS Red Team Expert (ARTE)
Leer & oefen GCP-hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die inskrywingsplanne!
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.