10 KiB
UUID असुरक्षा
जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)!
HackTricks का समर्थन करने के अन्य तरीके:
- यदि आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं तो सब्सक्रिप्शन प्लान्स देखें!
- आधिकारिक PEASS और HackTricks स्वैग प्राप्त करें
- The PEASS Family की खोज करें, हमारा विशेष NFTs संग्रह
- शामिल हों 💬 डिस्कॉर्ड समूह या टेलीग्राम समूह या हमें ट्विटर पर फॉलो करें 🐦 @carlospolopm.
- हैकिंग ट्रिक्स साझा करें द्वारा PRs सबमिट करके HackTricks और HackTricks Cloud github repos में।
मौलिक जानकारी
विश्वव्यापी अद्वितीय पहचानकर्ता (UUIDs) 128-बिट संख्याएँ हैं जो कंप्यूटर सिस्टम में जानकारी को अद्वितीय रूप से पहचानने के लिए प्रयोग की जाती हैं। UUIDs ऐसे अनुप्रयोगों में आवश्यक हैं जहाँ अद्वितीय पहचानकर्ता केंद्रीय समन्वय के बिना आवश्यक होते हैं। ये सामान्यत: डेटाबेस कुंजी के रूप में प्रयोग किए जाते हैं और दस्तावेज़ और सत्र जैसे विभिन्न तत्वों का संदर्भ कर सकते हैं।
UUIDs को अद्वितीय और अनुमान लगाने में कठिन बनाने के लिए डिज़ाइन किया गया है। इन्हें एक विशेष स्वरूप में व्यवस्थित किया गया है, पांच समूहों में विभाजित हैं जिन्हें 32 हेक्साडेसिमल अंकों के रूप में प्रस्तुत किया गया है। UUIDs के विभिन्न संस्करण होते हैं, जो विभिन्न उद्देश्यों की सेवा करते हैं:
- UUID v1 समय-आधारित है, समय-चक्र, और नोड का MAC पता शामिल करता है, लेकिन यह प्रणाली सूचना को उजागर कर सकता है।
- UUID v2 v1 के समान है लेकिन स्थानीय डोमेन के लिए संशोधन शामिल करता है (इस्तेमाल नहीं होता है)।
- UUID v3 और v5 नामस्थान और नाम से हैश मानों का उपयोग करके UUIDs उत्पन्न करते हैं, v3 में MD5 का उपयोग करते हैं और v5 में SHA-1 का उपयोग करते हैं।
- UUID v4 लगभग पूरी तरह से यादृच्छिक रूप से उत्पन्न होता है, एक उच्च स्तर की गुमनामी प्रदान करता है लेकिन थोड़ी सी डुप्लिकेट्स की संभावना होती है।
{% hint style="success" %}
ध्यान दें कि UUID का संस्करण और उपसंस्करण आम तौर पर UUID के भीतर ही दिखाई देता है। उदाहरण के लिए:
12345678 - abcd - 1a56 - a539 - 103755193864
xxxxxxxx - xxxx - Mxxx - Nxxx - xxxxxxxxxxxx
- M की स्थिति UUID संस्करण को दर्शाती है। उपरोक्त उदाहरण में, यह UUID v1 है।
- N की स्थिति UUID वेरिएंट को दर्शाती है। {% endhint %}
सैंडविच हमला
"सैंडविच हमला" एक विशेष प्रकार का हमला है जो वेब एप्लिकेशन में UUID v1 जनरेशन की पूर्वानुमानितता का शोषण करता है, विशेष रूप से पासवर्ड रीसेट जैसी विशेषताओं में। UUID v1 समय, घड़ी क्रम, और नोड के MAC पते पर आधारित होता है, जो यदि किसी हमलावर को इन UUIDs में से कुछ प्राप्त कर सकता है तो इसे थोड़ा पूर्वानुमानित बना सकता है।
उदाहरण
सोचिए एक वेब एप्लिकेशन जो पासवर्ड रीसेट लिंक जनरेट करने के लिए UUID v1 का उपयोग करता है। यहाँ एक हमलावर कैसे इसका शोषण कर सकता है तकरीबन अधिकारहीन उपयोग प्राप्त करने के लिए:
- प्रारंभिक सेटअप:
- हमलावर के पास दो ईमेल खाते कंट्रोल हैं: `attacker1@acme.com` और `attacker2@acme.com`।
- लक्ष्य का ईमेल खाता है `victim@acme.com`।
- क्रियान्वयन:
- हमलावर अपने पहले खाते के लिए (`attacker1@acme.com`) पासवर्ड रीसेट ट्रिगर करता है और एक UUID के साथ पासवर्ड रीसेट लिंक प्राप्त करता है, कहें `99874128-7592-11e9-8201-bb2f15014a14`।
- तुरंत बाद में, हमलावर लक्ष्य के खाते के लिए (`victim@acme.com`) पासवर्ड रीसेट ट्रिगर करता है और फिर तेजी से दूसरे हमलावर कंट्रोल किए गए खाते के लिए (`attacker2@acme.com`)।
- हमलावर दूसरे खाते के लिए एक रीसेट लिंक प्राप्त करता है जिसमें एक UUID है, कहें `998796b4-7592-11e9-8201-bb2f15014a14`।
- विश्लेषण:
- हमलावर के पास अब समय के करीब उत्पन्न दो UUIDs हैं (`99874128` और `998796b4`)। समय-आधारित UUIDs के अनुक्रमिक स्वरूप के दिए गए नेतृत्व के कारण, लक्ष्य के खाते के लिए UUID यहाँ दो मानों के बीच होने की संभावना है।
- ब्रूट फ़ोर्स हमला:
- हमलावर एक उपकरण का उपयोग करता है जो इन दो मानों के बीच UUIDs उत्पन्न करने के लिए और प्रत्येक उत्पन्न UUID का परीक्षण करने के लिए प्रयास करता है (उदाहरण के लिए, `https://www.acme.com/reset/<generated-UUID>` की कोशिश करके)।
- यदि वेब एप्लिकेशन इस प्रकार के प्रयासों को पर्याप्त रेट लिमिट नहीं करती या नहीं ब्लॉक करती है, तो हमलावर समभावित सभी UUIDs की जांच तेजी से कर सकता है।
- पहुंच प्राप्त:
- जब विक्टिम के पासवर्ड रीसेट लिंक के सही UUID का पता चल जाता है, तो हमलावर विक्टिम का पासवर्ड रीसेट कर सकता है और उनके खाते में अनधिकृत पहुंच प्राप्त कर सकता है।
उपकरण
- आप उपकरण के साथ सैंडविच हमला स्वचालित रूप से कर सकते हैं: https://github.com/Lupin-Holmes/sandwich
- आप एक्सटेंशन UUID Detector के साथ Burp Suite में इस प्रकार के UUIds का पता लगा सकते हैं।