फाइल इन्क्लूजन और मनमाना कोड निष्पादन: इस महीने की शुरुआत में, वर्डप्रेस पर बनी एक हवाई जहाज टिकट वेबसाइट हैक हो गई जिससे सैकड़ों हजारों विजिटर्स का व्यक्तिगत डेटा उजागर हो गया। हैकर्स हैक क्यों करते हैं पर पहले की एक पोस्ट में, हमने उन सभी कारणों पर चर्चा की थी कि हैकर्स क्यों हैक करते हैं जिसमें डेटा चुराना, स्पैम ईमेल भेजना, वे अपने उत्पादों को रैंक करने के लिए ब्लैक हैट SEO तकनीकों का उपयोग भी कर सकते हैं (अनुशंसित पढ़ें - फार्मा हैक), आदि।
यह सीखना कि हैकर्स वेबसाइट को कैसे हैक करते हैं, उन्हें रोकने की कुंजी है, इसीलिए हमने वर्डप्रेस वेबसाइट्स पर किए जाने वाले सबसे आम हैक अटैक्स को पहले के एक लेख में सूचीबद्ध किया था।
जब हम आम हैक अटैक्स की बात करते हैं, तो आप ब्रूट फोर्स अटैक्स के बारे में सोचने की बहुत संभावना रखते हैं। लेकिन क्या आप जानते हैं कि फाइल इन्क्लूजन और मनमाना कोड निष्पादन भी वर्डप्रेस वेबसाइट्स पर किए जाने वाले सबसे आम हैक अटैक्स में से एक है। इस पोस्ट में, हम इन अटैक्स को विस्तार से समझने के दृष्टिकोण से थोड़ा गहराई में जाएंगे।
यह समझने के लिए कि ये अटैक कैसे काम करते हैं, पहली चीज जो आपको पता होनी चाहिए वह यह है कि इसमें PHP फाइलें शामिल हैं। आप सोच रहे होंगे क्यों? क्योंकि फाइल इन्क्लूजन और मनमाना कोड निष्पादन दोनों अटैक्स में PHP फाइलों का उपयोग शामिल है।
लेकिन PHP फाइल क्या है? एक किचन कैबिनेट के बारे में सोचें। कैबिनेट के अंदर, कई आइटम होते हैं जैसे चीनी, नमक, मसाले, बर्तन, आदि। इनमें से प्रत्येक आइटम का किचन में एक उद्देश्य होता है। एक PHP फाइल एक कैबिनेट है और फाइलों के अंदर के कोड वे आइटम हैं जो हैकर द्वारा वांछित कुछ कार्यों के निष्पादन को सक्षम करते हैं। यही कारण है कि हैकर्स JPEG या PDF फाइल जैसी किसी अन्य फाइल की तुलना में PHP फाइल अपलोड करना पसंद करते हैं। JPEG और PDF फाइलें निष्पादन योग्य नहीं होती हैं, यानी हैकर्स इन फाइलों का उपयोग किसी भी फंक्शन को निष्पादित करने के लिए नहीं कर सकते। कोई केवल उन्हें पढ़ (यानी देख) सकता है। उनका उपयोग हैक की गई साइट में कोई बदलाव करने के लिए नहीं किया जा सकता।
एक हैकर जिसने आपकी वेबसाइट सर्वर पर एक PHP फाइल अपलोड की है, वह इसका उपयोग आपकी वेबसाइट पर कुछ भी करने के लिए कर सकता है। और यही कारण है कि PHP फाइलों का उपयोग फाइल इन्क्लूजन और मनमाना कोड निष्पादन अटैक्स चलाने के लिए किया जाता है।
फाइल इन्क्लूजन अटैक क्या है?
इस तरह के जटिल वेबसाइट अटैक को समझने का सबसे अच्छा तरीका एक वास्तविक परिदृश्य का उदाहरण देना है। मान लीजिए आप अपने संस्थान के लिए एक वेबसाइट चलाते हैं और साइट का नाम college.com है। आप कुछ छात्रों को साइट तक पहुंचने की अनुमति देते हैं ताकि वे हाल ही के कॉलेज इवेंट के दौरान ली गई तस्वीरें पोस्ट कर सकें। कोई आपके द्वारा दी गई पहुंच का दुरुपयोग करता है और वेबसाइट में एक दुर्भावनापूर्ण PHP फाइल (नाम hack.php) अपलोड करता है। लक्ष्य कॉलेज वेबसाइट्स का नियंत्रण हासिल करना है। जब छात्र दुर्भावनापूर्ण PHP फाइल अपलोड करता है, तो डिफ़ॉल्ट रूप से यह अपलोड फ़ोल्डर में संग्रहीत होती है। जो कोई भी वर्डप्रेस की बुनियादी संरचना जानता है वह जानता है कि अपलोड की गई फाइल कहां जाती है।
फाइल एक दरवाजे की तरह काम करती है जो हैकर को फाइल के साथ दूर से बातचीत करने में सक्षम बनाती है। ध्यान दें कि हैकर का अभी भी साइट पर नियंत्रण नहीं है, उनके पास संचार के लिए बस एक विंडो है। इसे समझने के लिए कल्पना करें कि व्यक्ति A किसी ऐसे देश में जाना चाहता है जहां उसे अनुमति नहीं है। इसलिए वह एक एजेंट, व्यक्ति B को भेजता है। व्यक्ति A हैकर है, देश कॉलेज वेबसाइट के लिए खड़ा है और व्यक्ति B hack.php फाइल है।
कॉलेज वेबसाइट में अपलोड की गई PHP फाइलें —-> फाइल वेबसाइट सर्वर में संग्रहीत होती है
व्यक्ति B केवल कुछ चीजों में प्रशिक्षित है और केवल इतना ही कर सकता है। इसलिए व्यक्ति A को उसे आगे क्या करना है इस पर निर्देश देने की आवश्यकता है। इसी तरह, PHP फाइल एक संचार विंडो बनाती है और फिर हैकर से और कमांड का इंतजार करती है।
मान लीजिए कि hack.php को इस तरह से बनाया गया है जो वेबसाइट में अधिक फाइलें अपलोड करने में सक्षम बनाता है। हैकर एक फाइल (नाम control.php) बनाता है जिसे वह hack.php का उपयोग करके अपलोड करेगा जो पहले से ही वेबसाइट सर्वर में मौजूद है। नई फाइल - control.php हैकर को वेबसाइट तक पूर्ण पहुंच प्राप्त करने में सक्षम करेगी। वह hack.php फाइल द्वारा प्रदान की गई विंडो का उपयोग करके control.php फाइल को साइट में अपलोड करता है। वेबसाइट सर्वर पर पहले से मौजूद फाइल (hack.php) का उपयोग करके control.php फाइल अपलोड करने की इस प्रक्रिया को लोकल फाइल इन्क्लूजन कहा जाता है।
लोकल फाइल निष्पादन का एक बड़ा उदाहरण Easy Forms for MailChimp वर्डप्रेस प्लगइन (v 6.0.5.5) पर देखी गई भेद्यता है। MailChimp प्लगइन का उपयोग करके, वेबसाइट मालिक अपनी वर्डप्रेस साइट पर विभिन्न प्रकार के फॉर्म जोड़ सकते हैं। एक भेद्यता ने हैकर्स को MailChimp फॉर्म का उपयोग करके वेबसाइट सर्वर में एक PHP फाइल अपलोड करने की अनुमति दी। एक बार फाइल वेबसाइट सर्वर पर संग्रहीत हो जाने के बाद, हैकर्स उनके साथ संवाद करने और कोड निष्पादित करने में सक्षम थे जो उन्हें सर्वर को नियंत्रित करने या कई तरीकों से साइट को नुकसान पहुंचाने में सक्षम बनाएगा।
यहां एक परिदृश्य है: कॉलेज वेबसाइट पर एक फायरवॉल इंस्टॉल है और इसलिए हैकर control.php अपलोड नहीं कर सकता। जब वह एक अलग फाइल अपलोड नहीं कर सकता तो वह एक फाइल 'इन्क्लूड' कर सकता है। इसका मतलब है कि वह hack.php फाइल के अंदर एक फाइल डाल सकता है जो पहले से ही कॉलेज वेबसाइट सर्वर पर मौजूद है। अगर हैकर control.php फाइल अपलोड करने में सक्षम होता, तो वेबसाइट सर्वर फाइल को पढ़ता और उसके अंदर के कोड को निष्पादित करता जो हैकर को जो कुछ भी वह चाहता है करने में सक्षम बनाता। लेकिन चूंकि वह फाइल अपलोड नहीं कर सकता, उसे सर्वर को control.php फाइल पढ़ने के लिए अन्य तरीके खोजने होंगे। हैकर द्वारा बनाया गया एक पथ ऑनलाइन उपलब्ध है और कॉलेज वेबसाइट का सर्वर इसे पढ़ने में सक्षम होना चाहिए। इसलिए हैकर एक पथ बनाता है और उन्हें ऑनलाइन उपलब्ध कराता है ताकि कॉलेज वेबसाइट सर्वर इसे पढ़ सके। सर्वर तब पथ से प्राप्त कोड को निष्पादित करना शुरू करता है और चूंकि कोड इस तरह से लिखा गया है कि यह हैकर को साइट का पूर्ण नियंत्रण लेने की अनुमति देगा, हैक अब कॉलेज वेबसाइट को नियंत्रित करता है। सर्वर को दूरस्थ फाइल पढ़ने की इस प्रक्रिया को रिमोट फाइल इन्क्लूजन कहा जाता है।
टिमथंब भेद्यता मामला रिमोट फाइल इन्क्लूजन का एक लोकप्रिय उदाहरण है। टिमथंब एक वर्डप्रेस प्लगइन था जो वर्डप्रेस साइट पर छवियों के आसान संपादन की अनुमति देता था। इसने किसी को भी imgur.com और flickr.com जैसी छवि साझा करने वाली वेबसाइटों से प्राप्त छवियों का उपयोग करने में सक्षम बनाया। टिमथंब imgur को एक वैध साइट (या व्हाइटलिस्टेड) के रूप में पहचानता है। इस मानदंड का लाभ उठाते हुए हैकर्स https://www.imgur.com.badsite.com जैसे URL का उल्लेख करते हुए फाइलें बनाते हैं। जब वे ऊपर बताए गए URL जैसी दुर्भावनापूर्ण फाइल अपलोड करते हैं तो प्लगइन यह मानने में धोखा खा जाता है कि फाइल एक वैध वेबसाइट से आती है। और यह वेबसाइट के सर्वर पर एक दुर्भावनापूर्ण फाइल अपलोड करने की अनुमति देता है। प्लगइन में भेद्यता का लाभ उठाकर वेबसाइट सर्वर के बाहर से एक दुर्भावनापूर्ण फाइल को शामिल करने की इस पूरी प्रक्रिया को रिमोट फाइल इन्क्लूजन कहा जाता है। दुर्भावनापूर्ण PHP फाइल वेबसाइट सर्वर में संग्रहीत होने के बाद, हैकर्स अपने वांछित कार्यों को निष्पादित करने के लिए इसके साथ संवाद कर सकते हैं।
मनमाना कोड निष्पादन अटैक क्या है?
अब जब हम जानते हैं कि रिमोट और लोकल फाइल इन्क्लूजन क्या है, तो आइए आगे बढ़ते हैं और यह समझने की कोशिश करते हैं कि मनमाना कोड निष्पादन क्या है। फाइल इन्क्लूजन और मनमाना कोड इन्क्लूजन एक दूसरे से परस्पर संबंधित हैं। फाइल इन्क्लूजन के किसी भी मामले में, हैकर्स का उद्देश्य वेबसाइट पर मनमाना कोड निष्पादित करना होता है। आइए लोकल फाइल इन्क्लूजन के उदाहरण पर वापस जाएं जहां हैकर ने कॉलेज वेबसाइट में hack.php अपलोड किया है और फिर hack.php की मदद से control.php अपलोड किया। वाक्यांश 'मनमाना कोड निष्पादन' एक हैकर की क्षमता का वर्णन है जो हैक की गई वेबसाइट पर अपनी पसंद के किसी भी कमांड को निष्पादित कर सकता है। एक बार PHP फाइलें (hack.php और control.php) वेबसाइट सर्वर पर आ जाने के बाद, हैकर किसी भी कोड को निष्पादित कर सकता है जो वह चाहता है। उसके द्वारा अपलोड की गई फाइलों से किसी भी कोड को निष्पादित करने की इस प्रक्रिया को मनमाना कोड निष्पादन कहा जाता है।
हैक जटिल होते हैं। इस पोस्ट में, हमने इसे जितना संभव हो उतना सरल समझाने की कोशिश की लेकिन अगर कोई भाग आपको समझ में नहीं आता है, तो हम अपने पाठकों से हमें लिखने का आग्रह करते हैं। अगली पोस्ट में, हम वर्डप्रेस साइट पर एक और आम हैक अटैक जिसे क्रॉस-साइट स्क्रिप्टिंग (XSS) कहा जाता है, पर चर्चा कर रहे हैं। एक नजर डालें।