**AWS हैकिंग सीखें और अभ्यास करें:**<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks प्रशिक्षण AWS रेड टीम विशेषज्ञ (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
**GCP हैकिंग सीखें और अभ्यास करें:** <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks प्रशिक्षण GCP रेड टीम विशेषज्ञ (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
(ECB) इलेक्ट्रॉनिक कोड बुक - सममित एन्क्रिप्शन स्कीम जो **प्रत्येक ब्लॉक को क्लियर पाठ** को **साइपरटेक्स्ट के ब्लॉक से** बदल देता है। यह **सबसे सरल** एन्क्रिप्शन स्कीम है। मुख्य विचार यह है कि क्लियर पाठ को **N बिट के ब्लॉक में विभाजित** किया जाता है (इनपुट डेटा, एन्क्रिप्शन एल्गोरिदम के ब्लॉक का आकार पर निर्भर करता है) और फिर केवल कुंजी का उपयोग करके प्रत्येक क्लियर पाठ के ब्लॉक को एन्क्रिप्ट (डिक्रिप्ट) करना है।
कल्पना करें आप कई बार एक एप्लिकेशन में लॉगिन करते हैं और आप **हमेशा एक ही कुकी** प्राप्त करते हैं। यह इसलिए है क्योंकि एप्लिकेशन की कुकी **`<उपयोगकर्ता नाम>|<पासवर्ड>`** है।\
आप पता लगाते हैं कि **8B के ब्लॉक** जहां **दोनों उपयोगकर्ताओं की जानकारी** समान हैं, **बराबर** हैं। तो, आपको लगता है कि यह हो सकता है क्योंकि **ECB का उपयोग हो रहा है**।
यह इसलिए है क्योंकि **कुकीज़ का उपयोगकर्ता नाम और पासवर्ड में कई बार अक्षर "a" शामिल था** (उदाहरण के लिए)। **विभिन्न ब्लॉक** वे ब्लॉक हैं जिनमें **कम से कम 1 विभिन्न वर्ण शामिल था** (शायद विभाजक "|" या उपयोगकर्ता नाम में आवश्यक भिन्नता)।
अब, हमलावर को बस यह पता लगाना है कि प्रारूप `<उपयोगकर्ता नाम><विभाजक><पासवर्ड>` है या `<पासवर्ड><विभाजक><उपयोगकर्ता नाम>` है। इसके लिए, वह बस **कई उपयोगकर्ता नाम** उत्पन्न कर सकता है जिनमें **समान और लंबे उपयोगकर्ता नाम और पासवर्ड** हों जब तक वह प्रारूप और विभाजक की लंबाई का पता नहीं लगा लेता है:
कुकी के प्रारूप को जानकर (`<उपयोगकर्तानाम>|<पासवर्ड>`), उपयोगकर्ता नाम `admin` का अनुकरण करने के लिए एक नया उपयोगकर्ता बनाएं `aaaaaaaaadmin` और कुकी प्राप्त करें और इसे डिकोड करें:
* एक उपयोगकर्ता नाम जेनरेट करें जो इस प्रकार हो: `len(<username>) + len(<delimiter) % len(block)`. `8B` ब्लॉक साइज के साथ आप `username ` नामक उपयोगकर्ता उत्पन्न कर सकते हैं, डिलीमिटर `|` के साथ टुकड़ा `<username><delimiter>` 2 ब्लॉक्स को उत्पन्न करेगा।
* फिर, एक पासवर्ड जेनरेट करें जो उस उपयोगकर्ता को अनुकरण करने और रिक्त स्थानों को भरने के लिए ब्लॉक्स की एक सटीक संख्या में होगा, जैसे: `admin `
इस उपयोगकर्ता की कुकी 3 ब्लॉक्स से बनी होगी: पहले 2 उपयोगकर्ता के ब्लॉक्स + डिलीमिटर और तीसरा पासवर्ड का ब्लॉक (जो उपयोगकर्ता का अनुकरण कर रहा है): `username |admin `