Python Internal Read Gadgets
Reading time: 3 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमारे Twitter 🐦 @hacktricks_live** का पालन करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
Basic Information
विभिन्न कमजोरियाँ जैसे कि Python Format Strings या Class Pollution आपको python आंतरिक डेटा पढ़ने की अनुमति दे सकती हैं लेकिन कोड निष्पादित करने की अनुमति नहीं देंगी। इसलिए, एक pentester को संवेदनशील विशेषाधिकार प्राप्त करने और कमजोरियों को बढ़ाने के लिए इन पढ़ने की अनुमतियों का अधिकतम लाभ उठाने की आवश्यकता होगी।
Flask - Read secret key
एक Flask एप्लिकेशन का मुख्य पृष्ठ शायद app
वैश्विक ऑब्जेक्ट होगा जहाँ यह गुप्त कॉन्फ़िगर किया गया है।
app = Flask(__name__, template_folder='templates')
app.secret_key = '(:secret:)'
इस मामले में, आप किसी भी गैजेट का उपयोग करके इस ऑब्जेक्ट तक पहुँच सकते हैं ताकि वैश्विक ऑब्जेक्ट्स तक पहुँच प्राप्त की जा सके Python सैंडबॉक्स को बायपास करने वाले पृष्ठ से।
उस मामले में जहाँ कमजोरी एक अलग पायथन फ़ाइल में है, आपको फ़ाइलों को पार करने के लिए एक गैजेट की आवश्यकता है ताकि मुख्य फ़ाइल तक पहुँच सकें और वैश्विक ऑब्जेक्ट app.secret_key
तक पहुँच सकें ताकि Flask गुप्त कुंजी को बदल सकें और इस कुंजी को जानकर अधिकार बढ़ा सकें।
इस तरह का एक पेलोड इस लेख से:
__init__.__globals__.__loader__.__init__.__globals__.sys.modules.__main__.app.secret_key
इस payload का उपयोग करें app.secret_key
को बदलने के लिए (आपके ऐप में नाम अलग हो सकता है) ताकि आप नए और अधिक विशेषाधिकार प्राप्त flask कुकीज़ पर हस्ताक्षर कर सकें।
Werkzeug - machine_id और node uuid
इस लेख से इन payload का उपयोग करते हुए आप machine_id और uuid node तक पहुँच सकते हैं, जो कि मुख्य रहस्य हैं जिनकी आपको Werkzeug पिन उत्पन्न करने के लिए आवश्यकता है, जिसे आप /console
में python कंसोल तक पहुँचने के लिए उपयोग कर सकते हैं यदि debug mode सक्षम है:
{ua.__class__.__init__.__globals__[t].sys.modules[werkzeug.debug]._machine_id}
{ua.__class__.__init__.__globals__[t].sys.modules[werkzeug.debug].uuid._node}
warning
ध्यान दें कि आप app.py
के लिए सर्वर का स्थानीय पथ प्राप्त कर सकते हैं, जो वेब पृष्ठ में कुछ त्रुटि उत्पन्न करके आपको पथ देगा।
यदि कमजोरियां किसी अन्य पायथन फ़ाइल में हैं, तो मुख्य पायथन फ़ाइल से वस्तुओं तक पहुँचने के लिए पिछले Flask ट्रिक की जाँच करें।
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमारे Twitter 🐦 @hacktricks_live** का पालन करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।