UUID Insecurities
Basic Information
यूनिवर्सली यूनिक आइडेंटिफायर (UUIDs) 128-बिट नंबर हैं जो कंप्यूटर सिस्टम में जानकारी की अद्वितीय पहचान के लिए उपयोग किए जाते हैं। UUIDs उन अनुप्रयोगों में आवश्यक हैं जहाँ अद्वितीय पहचानकर्ताओं की आवश्यकता होती है बिना केंद्रीय समन्वय के। इन्हें सामान्यतः डेटाबेस कुंजी के रूप में उपयोग किया जाता है और ये विभिन्न तत्वों जैसे दस्तावेज़ों और सत्रों को संदर्भित कर सकते हैं।
UUIDs को अद्वितीय और अनुमान लगाने में कठिन बनाने के लिए डिज़ाइन किया गया है। इन्हें एक विशिष्ट प्रारूप में संरचित किया गया है, जो 32 हेक्साडेसिमल अंकों के रूप में पांच समूहों में विभाजित है। UUIDs के विभिन्न संस्करण होते हैं, प्रत्येक का अलग-अलग उद्देश्यों के लिए उपयोग किया जाता है:
UUID v1 समय-आधारित है, जिसमें टाइमस्टैम्प, घड़ी अनुक्रम, और नोड आईडी (MAC पता) शामिल है, लेकिन यह संभावित रूप से सिस्टम जानकारी को उजागर कर सकता है।
UUID v2 v1 के समान है लेकिन स्थानीय डोमेन के लिए संशोधन शामिल करता है (विशाल रूप से उपयोग नहीं किया जाता)।
UUID v3 और v5 नामस्थान और नाम से हैश मानों का उपयोग करके UUID उत्पन्न करते हैं, जिसमें v3 MD5 का उपयोग करता है और v5 SHA-1 का उपयोग करता है।
UUID v4 लगभग पूरी तरह से यादृच्छिक रूप से उत्पन्न होता है, जो उच्च स्तर की गुमनामी प्रदान करता है लेकिन डुप्लिकेट का थोड़ा जोखिम होता है।
ध्यान दें कि UUID का संस्करण और उपसंस्करण आमतौर पर UUID के भीतर एक ही स्थिति में दिखाई देता है। उदाहरण के लिए: 12345678 - abcd - 1a56 - a539 - 103755193864 xxxxxxxx - xxxx - Mxxx - Nxxx - xxxxxxxxxxxx
M की स्थिति UUID संस्करण को इंगित करती है। ऊपर दिए गए उदाहरण में, यह UUID v1 है।
N की स्थिति UUID भिन्नता को इंगित करती है।
Sandwich attack
"सैंडविच अटैक" एक विशिष्ट प्रकार का हमला है जो वेब अनुप्रयोगों में UUID v1 उत्पन्न करने की भविष्यवाणी करने की क्षमता का लाभ उठाता है, विशेष रूप से पासवर्ड रीसेट जैसी सुविधाओं में। UUID v1 समय, घड़ी अनुक्रम, और नोड के MAC पते के आधार पर उत्पन्न होता है, जो इसे कुछ हद तक अनुमानित बना सकता है यदि एक हमलावर इन UUIDs में से कुछ को प्राप्त कर सकता है जो समय के करीब उत्पन्न हुए हैं।
Example
कल्पना करें कि एक वेब अनुप्रयोग 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 संभवतः इन दो मानों के बीच होगा।
ब्रूट फोर्स अटैक:
हमलावर इन दो मानों के बीच UUID उत्पन्न करने के लिए एक उपकरण का उपयोग करता है और प्रत्येक उत्पन्न UUID का परीक्षण करता है पासवर्ड रीसेट लिंक तक पहुँचने का प्रयास करके (जैसे, `https://www.acme.com/reset/<generated-UUID>`)।
यदि वेब अनुप्रयोग उचित दर सीमा निर्धारित नहीं करता है या ऐसे प्रयासों को अवरुद्ध नहीं करता है, तो हमलावर जल्दी से सीमा में सभी संभावित UUIDs का परीक्षण कर सकता है।
पहुँच प्राप्त की:
एक बार जब लक्ष्य के पासवर्ड रीसेट लिंक के लिए सही UUID खोजा जाता है, तो हमलावर लक्ष्य का पासवर्ड रीसेट कर सकता है और उनके खाते में अनधिकृत पहुंच प्राप्त कर सकता है।
Tools
आप उपकरण का उपयोग करके सैंडविच अटैक स्वचालित रूप से कर सकते हैं: https://github.com/Lupin-Holmes/sandwich
आप Burp Suite में एक्सटेंशन UUID Detector के साथ इन प्रकार के UUIDs का पता लगा सकते हैं।
References
Last updated