Array Indexing
मौलिक जानकारी
यह श्रेणी उन सभी सुरक्षा दोषों को शामिल करती है जो एरे के इंडेक्स के हैंडलिंग में त्रुटियों के कारण किसी विशेष डेटा को ओवरराइट करना संभव होता है। यह एक बहुत व्यापक श्रेणी है जिसमें कोई विशिष्ट मेथडोलॉजी नहीं है क्योंकि एक्सप्लोइटेशन मेकेनिज़्म पूरी तरह से दोष की स्थितियों पर निर्भर होता है।
हालांकि यहाँ आप कुछ अच्छे उदाहरण पा सकते हैं:
यहाँ 2 टकराने वाले एरे हैं, एक पतों के लिए जहां डेटा स्टोर होता है और एक उस डेटा के आकार के लिए। एक को दूसरे से ओवरराइट करना संभव है, जिससे किसी भी पते को एक आकार के रूप में इंडिकेट करने की अनुमति मिलती है। इससे
free
फ़ंक्शन के पते को GOT टेबल में लिखने की अनुमति मिलती है और फिर इसेsystem
के पते से ओवरराइट करने की अनुमति मिलती है, और/bin/sh
के साथ मेमोरी से फ्री को कॉल करने की अनुमति मिलती है।64 बिट, कोई nx नहीं। एक आकार को ओवरराइट करने के लिए एक प्रकार का बफर ओवरफ्लो प्राप्त करने के लिए जहां हर चीज़ को एक डबल नंबर के रूप में उपयोग किया जाएगा और सब कुछ सबसे छोटे से सबसे बड़े तक क्रमबद्ध किया जाएगा, इसलिए इस आवश्यकता को पूरा करने के लिए एक शैलकोड बनाना आवश्यक है, ध्यान देना चाहिए कि कैनेरी को इसकी स्थिति से हटाया नहीं जाना चाहिए और अंत में RIP को एक पते से ओवरराइट करना है, जो पिछली आवश्यकताओं को पूरा करने वाला हो और सबसे बड़े पते को स्टैक की शुरुआत पर एक नया पता दिखाने वाले एक पते के साथ जोड़ना है (प्रोग्राम द्वारा लीक किया गया है) ताकि रेट का उपयोग करके वहां जाने की संभावना हो।
64 बिट, कोई relro, कैनेरी, nx, कोई pie नहीं। स्टैक में एक एरे में एक ऑफ-बाई-वन है जो एक पॉइंटर को नियंत्रित करने की अनुमति देता है जिससे वह एरे के ऑफ-बाई-वन में सभी संख्याओं का योग लिखता है। स्टैक नियंत्रित है ताकि GOT
exit
पताpop rdi; ret
के साथ ओवरराइट हो जाए, और स्टैक मेंmain
का पता जोड़ा जाता है (वापसmain
पर लूप करने के लिए)। गोट में पुट्स का पता लीक करने के लिए आरओपी श्रृंखला का उपयोग किया जाता है (exit
को कॉल किया जाएगा ताकि यहpop rdi; ret
को कॉल करेगा और इसलिए स्टैक में इस श्रृंखला को निष्पादित करेगा)। अंत में रिट2लिब को निष्पादित करने के लिए एक नई आरओपी श्रृंखला का उपयोग किया जाता है।32 बिट, कोई relro, कैनेरी, nx, pie नहीं। लिबसी और हीप के पतों को स्टैक से लीक करने के लिए एक बुरा इंडेक्सिंग का दुरुपयोग करें। बफर ओवरफ्लो का दुरुपयोग करने के लिए रेट2लिब कॉल करने के लिए
system('/bin/sh')
(हीप पता एक जांच को छलने के लिए आवश्यक है)।
Last updated