hacktricks/cryptography/electronic-code-book-ecb.md

12 KiB

AWS हैकिंग सीखें शून्य से लेकर हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

ECB

(ECB) इलेक्ट्रॉनिक कोड बुक - सममितीय एन्क्रिप्शन योजना जो प्रत्येक ब्लॉक को स्पष्ट पाठ के बदले में सिफरटेक्स्ट के ब्लॉक से बदल देती है. यह सबसे सरल एन्क्रिप्शन योजना है. मुख्य विचार यह है कि स्पष्ट पाठ को N बिट्स के ब्लॉक्स में विभाजित करें (इनपुट डेटा के ब्लॉक के आकार, एन्क्रिप्शन एल्गोरिदम पर निर्भर करता है) और फिर प्रत्येक स्पष्ट पाठ के ब्लॉक को एकमात्र कुंजी का उपयोग करके एन्क्रिप्ट (डिक्रिप्ट) करें.

ECB का उपयोग करने से कई सुरक्षा प्रभाव पड़ते हैं:

  • एन्क्रिप्टेड संदेश से ब्लॉक्स को हटाया जा सकता है
  • एन्क्रिप्टेड संदेश से ब्लॉक्स को इधर-उधर किया जा सकता है

कमजोरी का पता लगाना

कल्पना कीजिए कि आप कई बार एक एप्लिकेशन में लॉगिन करते हैं और आपको हमेशा वही कुकी मिलती है. यह इसलिए है क्योंकि एप्लिकेशन की कुकी <username>|<password> है.
फिर, आप दो नए उपयोगकर्ता बनाते हैं, दोनों के पास समान लंबा पासवर्ड और लगभग समान उपयोगकर्ता नाम होता है.
आप पाते हैं कि 8B के ब्लॉक्स जहां दोनों उपयोगकर्ताओं की जानकारी समान है, वे बराबर हैं. फिर, आप कल्पना करते हैं कि यह शायद इसलिए है क्योंकि ECB का उपयोग किया जा रहा है.

निम्नलिखित उदाहरण की तरह. देखें कैसे ये 2 डिकोडेड कुकीज़ में कई बार ब्लॉक \x23U\xE45K\xCB\x21\xC8 होता है.

\x23U\xE45K\xCB\x21\xC8\x23U\xE45K\xCB\x21\xC8\x04\xB6\xE1H\xD1\x1E \xB6\x23U\xE45K\xCB\x21\xC8\x23U\xE45K\xCB\x21\xC8+=\xD4F\xF7\x99\xD9\xA9

\x23U\xE45K\xCB\x21\xC8\x23U\xE45K\xCB\x21\xC8\x04\xB6\xE1H\xD1\x1E \xB6\x23U\xE45K\xCB\x21\xC8\x23U\xE45K\xCB\x21\xC8+=\xD4F\xF7\x99\xD9\xA9

यह इसलिए है क्योंकि उन कुकीज़ के यूजरनेम और पासवर्ड में कई बार "a" अक्षर शामिल था (उदाहरण के लिए)। जो ब्लॉक्स अलग हैं, वे ब्लॉक्स हैं जिनमें कम से कम 1 अलग अक्षर शामिल था (शायद डिलिमिटर "|" या यूजरनेम में कुछ जरूरी अंतर)।

अब, हमलावर को केवल यह पता लगाना है कि फॉर्मेट <username><delimiter><password> है या <password><delimiter><username>। इसके लिए, वह केवल कई यूजरनेम बना सकता है जिनमें समान और लंबे यूजरनेम और पासवर्ड होते हैं जब तक कि वह फॉर्मेट और डिलिमिटर की लंबाई का पता न लगा ले:

Username length: Password length: Username+Password length: Cookie's length (after decoding):
2 2 4 8
3 3 6 8
3 4 7 8
4 4 8 16
7 7 14 16

कमजोरी का शोषण

पूरे ब्लॉक्स को हटाना

कुकी के फॉर्मेट को जानते हुए (<username>|<password>), यूजरनेम admin का प्रतिरूपण करने के लिए एक नया यूजर aaaaaaaaadmin बनाएं और कुकी प्राप्त करें और उसे डिकोड करें:

\x23U\xE45K\xCB\x21\xC8\xE0Vd8oE\x123\aO\x43T\x32\xD5U\xD4

हम पैटर्न \x23U\xE45K\xCB\x21\xC8 देख सकते हैं जो पहले उस यूजरनेम के साथ बनाया गया था जिसमें केवल a था।
फिर, आप पहले ब्लॉक के 8B को हटा सकते हैं और आपको यूजरनेम admin के लिए एक वैध कुकी मिल जाएगी:

\xE0Vd8oE\x123\aO\x43T\x32\xD5U\xD4

ब्लॉक्स को स्थानांतरित करना

कई डेटाबेस में WHERE username='admin'; के लिए खोजना या WHERE username='admin '; के लिए खोजना समान होता है (अतिरिक्त स्पेसेस का ध्यान दें)

इसलिए, admin उपयोगकर्ता की नकल करने का एक और तरीका होगा:

  • एक उपयोगकर्ता नाम उत्पन्न करें जिसके लिए: len(<username>) + len(<delimiter) % len(block). अगर ब्लॉक का आकार 8B है तो आप उपयोगकर्ता नाम बना सकते हैं: username , और डिलिमिटर | के साथ <username><delimiter> चंक 8Bs के 2 ब्लॉक्स उत्पन्न करेगा।
  • फिर, एक पासवर्ड उत्पन्न करें जो उस उपयोगकर्ता नाम को भरने के लिए एक सटीक संख्या में ब्लॉक्स को भरेगा जिसे हम नकल करना चाहते हैं और स्पेसेस, जैसे: admin

इस उपयोगकर्ता का कुकी 3 ब्लॉक्स से बना होगा: पहले 2 ब्लॉक्स उपयोगकर्ता नाम + डिलिमिटर के हैं और तीसरा पासवर्ड का है (जो उपयोगकर्ता नाम की नकल कर रहा है): username |admin

** फिर, बस पहले ब्लॉक को आखिरी ब्लॉक के साथ बदल दें और आप admin उपयोगकर्ता की नकल कर रहे होंगे: admin |username**

संदर्भ

htARTE (HackTricks AWS Red Team Expert) के साथ AWS हैकिंग सीखें शून्य से लेकर हीरो तक htARTE (HackTricks AWS Red Team Expert)!

HackTricks का समर्थन करने के अन्य तरीके: