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
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
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.
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:
__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:
{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
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.