आप जैसे पाठक MUO का समर्थन करने में मदद करते हैं। जब आप हमारी साइट पर लिंक का उपयोग करके खरीदारी करते हैं, तो हम संबद्ध कमीशन अर्जित कर सकते हैं। और पढ़ें।

इंजेक्शन के हमले हैकर्स द्वारा सिस्टम पर हमला करने के सबसे आम तरीकों में से एक हैं क्योंकि यह उन्हें आसानी से कई कमांड और कोड चलाने की अनुमति देता है। ओएस कमांड इंजेक्शन एक ऐसा इंजेक्शन हमला है जिसके बारे में आपको जागरूक होना चाहिए। यह एक भेद्यता का शोषण करता है जिसे सिस्टम, डेटाबेस और वेब एप्लिकेशन प्रशासकों को बहुत गंभीरता से लेना चाहिए।

तो OS कमांड इंजेक्शन अटैक क्या है?

ओएस कमांड इंजेक्शन की परिभाषा

ओएस कमांड इंजेक्शन एक दुर्भावनापूर्ण हमलावर को कमजोर ऑपरेटिंग सिस्टम, प्रोग्राम, एप्लिकेशन, डेटाबेस या प्लग-इन का शोषण करके किसी भी कमांड को चलाने देता है। ऐसा तब होता है जब एप्लिकेशन शेल फ़ंक्शंस को कॉल करते समय उनके द्वारा उपयोग किए जाने वाले मापदंडों को ठीक से मान्य और स्वच्छ करने में विफल होते हैं प्रणाली() या कार्यकारी () सिस्टम कमांड निष्पादित करने के लिए।

ओएस कमांड इंजेक्शन की पहचान और उपयोग को बेहतर ढंग से समझने के लिए, तीन मुख्य श्रेणियों में इस मुद्दे की जांच करना उपयोगी है।

instagram viewer

1. डायरेक्ट कमांड इंजेक्शन

इसे हमलावर के नजरिए से देखें। साइबर हमलावर को पता चलता है कि एक एप्लिकेशन एक विशिष्ट सिस्टम कमांड चला रहा है; वे अपेक्षित तर्कों के भाग के रूप में दुर्भावनापूर्ण आदेश दर्ज करते हैं। एप्लिकेशन तब मूल आदेश निष्पादित करता है जिसके बाद दुर्भावनापूर्ण होता है।

इस तरह की भेद्यता का पता लगाने के लिए हमलावर कई तरह के तरीके अपनाता है। इससे निपटने का सबसे आसान तरीका ऑपरेटिंग सिस्टम को हर समय अपडेट रखना है; आप एक सक्षम आईटी टीम के सहयोग से ऐसा कर सकते हैं। आपको उन सभी ऐप और प्रोग्राम से बचना चाहिए जो सिस्टम में भेद्यता पैदा कर सकते हैं क्योंकि हमलावर सीधे कोड डाल सकता है, और नुकसान अप्रत्याशित है।

2. अप्रत्यक्ष कमांड इंजेक्शन

अप्रत्यक्ष कमांड इंजेक्शन के मामले में, हमलावर सीधे सिस्टम में कोड या कमांड इनपुट नहीं करता है। इसके लिए वे सिस्टम में एक कमजोर एप्लिकेशन या प्रोग्राम का इस्तेमाल करते हैं। भेद्यता हमलावर और ऑपरेटिंग सिस्टम के बीच एक पुल बनाती है। इस संचार का लाभ उठाते हुए, हमलावर लक्ष्य पर दुर्भावनापूर्ण कोड और आदेश चलाने का लक्ष्य रखता है।

हमलावर इस भेद्यता की पहचान करने के लिए परीक्षणों की एक श्रृंखला को अंजाम देता है और पता चलता है कि सॉफ्टवेयर सिस्टम कमांड को कॉल करने के लिए फ़ाइल या पर्यावरण चर जैसे बाहरी स्रोत से डेटा का उपयोग करता है। हमलावर तब बाहरी स्रोत की सामग्री को संशोधित करता है, इसलिए इसमें अब एक दुर्भावनापूर्ण कमांड शामिल है। इसे तब मूल एप्लिकेशन के निर्देशों के साथ निष्पादित किया जाता है।

डायरेक्ट और इनडायरेक्ट कमांड इंजेक्शन के बीच मुख्य अंतर यह है कि हमलावर ऑपरेटिंग सिस्टम के साथ संचार करने के लिए एक एप्लिकेशन का उपयोग करता है। लेकिन इंजेक्शन के दो रूपों से होने वाले नुकसान के बीच कोई वास्तविक अंतर नहीं है, इसलिए दोनों को संबोधित करने की आवश्यकता है। इसलिए आपको यह सुनिश्चित करना चाहिए कि आपके नेटवर्क के प्रोग्राम विश्वसनीय और आवश्यक हैं। उन ऐप्स को अपने डिवाइस पर न रखें जिन पर आपको भरोसा नहीं है।

3. ब्लाइंड कमांड इंजेक्शन

एक अन्य प्रकार का OS कमांड इंजेक्शन ब्लाइंड कमांड इंजेक्शन है। इसका मतलब है कि एप्लिकेशन HTTP प्रतिक्रिया में कमांड से कोई आउटपुट नहीं लौटाता है। हमलावर इस भेद्यता का फायदा उठाने के लिए समय की देरी और आउटपुट रूटिंग जैसी विभिन्न तकनीकों का उपयोग करता है।

कल्पना करें कि आप एक वेबसाइट खोज रहे हैं, और URL में "/?search=id" मान प्रत्येक खोज के साथ बदल जाता है। यहां आईडी मान उपयोगकर्ता पृष्ठ, उत्पाद फोटो का पता या साइट पर कोई भी पृष्ठ हो सकता है। आईडी मान बदलकर हमलावर अलग-अलग परिणाम प्राप्त कर सकता है। इसे मैन्युअल रूप से करना मुश्किल है, लेकिन हैं बर्प सूट जैसे उपकरण इसके लिए। बाद में, हमलावर को एक पृष्ठ पर एक विषमता का पता चलता है: एक आईडी मान लौटाया जा सकता है, भले ही उसने कोई परिणाम न दिखाया हो, वेबसाइट की प्रतिक्रिया 200 थी, जो इंगित करता है कि सब कुछ ठीक है। ऐसे में हमलावर ब्लाइंड कमांड इंजेक्शन का इस्तेमाल कर सकता है।

समय विलंब जैसी तकनीक विशेष रूप से उपयोगी है। चूंकि खुलने वाला पेज खाली होगा, इसलिए आपको कोई प्रतिक्रिया नहीं मिलेगी, लेकिन फिर भी आप इकट्ठा हो सकते हैं समय की देरी के आधार पर डेटाबेस में क्या संग्रहीत है, इसके बारे में जानकारी जो केवल एक निश्चित चरित्र होने पर ही पृष्ठ को लोड करती है वर्तमान। यह मैन्युअल प्रक्रिया होने में बहुत अधिक समय लगता है, लेकिन बहुत सारे उपकरण हमले को स्वचालित कर सकते हैं।

एक उदाहरण हमला परिदृश्य

आइए एक उदाहरण के माध्यम से उपरोक्त सभी की समीक्षा करें। कल्पना करें कि आपके पास एक शॉपिंग ऐप है जो उपयोगकर्ता को यह देखने देता है कि उत्पाद स्टॉक में हैं या नहीं। आइए इस सारी जानकारी तक पहुँचने के लिए नीचे दिए गए URL की तरह एक URL का उपयोग करें:

example_unsafe_store.com/stockStatus? उत्पाद आईडी = 245 और स्टोर आईडी =

कल्पना करें कि उत्पाद और स्टोर आईडी को एक शेल कमांड के लिए तर्क के रूप में पास किया जाए, जैसे "स्टॉकस्टैट.पीएल 245 38", क्योंकि एप्लिकेशन को पुराने रिकॉर्ड के लिए पूछताछ करनी होगी। यदि डेवलपर कमांड इंजेक्शन के खिलाफ कोई कार्रवाई नहीं करता है, तो हमलावर वांछित कमांड को निष्पादित करने के लिए इनपुट भेज सकता है:

& गूंज यह_a_हानिकारक_आदेश और

यदि यह प्रविष्टि उत्पादआईडी पैरामीटर में जाती है, तो एप्लिकेशन द्वारा निष्पादित आदेश होगा:

स्टॉकस्टैट.पीएल और गूंज यह_a_हानिकारक_आदेश और 38

इको कमांड कमांड इंजेक्शन का पता लगाने के साथ-साथ यह सुनिश्चित करने के लिए एक उपयोगी तरीका है कि आउटपुट में दिया गया स्ट्रिंग दिखाई देता है। "&" वर्ण एक है शेल कमांड विभाजक, इसलिए जो निष्पादित किया जाता है वह तीन अलग-अलग आदेश हैं, एक के बाद एक। नतीजतन, उपयोगकर्ता को लौटाया गया आउटपुट होगा:

गलती -प्रोडक्टआईडी नहीं मिला
this_a_हानिकारक_आदेश
38: आज्ञा नहीं मिला

यहां, "stockstat.pl" फ़ाइल ने अपेक्षित तर्कों के बिना आदेश निष्पादित किया और इसलिए एक त्रुटि संदेश लौटाया। फिर, हमलावर द्वारा इंजेक्ट किया गया इको कमांड चला और हमलावर ने स्क्रीन पर दर्ज अभिव्यक्ति को देखा। मूल तर्क, "38", त्रुटि पैदा करने वाले कमांड के रूप में चला।

OS कमांड इंजेक्शन से कैसे बचाव करें I

हालांकि कमांड इंजेक्शन एक शक्तिशाली और हानिकारक अटैक वेक्टर है, लेकिन इससे बचने के लिए कुछ तरकीबें हैं। OS कमांड इंजेक्शन हमलों के पीछे का तर्क एक एप्लिकेशन का उपयोग करके कुछ ऑपरेटिंग सिस्टम कमांड को निष्पादित करना है। आपको ऐसा होने से रोकने की जरूरत है। विचार करने के लिए कुछ मुद्दे हैं:

  1. आपको एप्लिकेशन तक पहुंच रखने वाले किसी भी व्यक्ति को कोड चलाने में सक्षम होने से रोकना चाहिए।
  2. आपको किसी भी व्यक्ति को एप्लिकेशन तक पहुंचने से सिंटैक्टिक अभिव्यक्तियों के साथ सर्वर से अनुरोध करने से रोकना चाहिए।
  3. आपको उन वाक्यांशों को एन्क्रिप्ट करना होगा जिनके पास पहुंच वाला कोई भी व्यक्ति अनुरोध करता है।

आइए प्रत्येक आइटम को एक-एक करके देखें। पहली समस्या का एक अच्छा समाधान है श्वेतसूची पद्धति का उपयोग करें एप्लिकेशन स्तर तक पहुंचने वाले किसी व्यक्ति को कुछ कोड या अनुरोध चलाने से रोकने के लिए। आप जिस किसी की पहचान नहीं करते हैं, वह कोड चलाने में सक्षम नहीं होगा।

दूसरे का समाधान आदेशों में प्रयुक्त कुछ पाठ भावों को स्वीकार नहीं करना है। उपयोगकर्ता केवल संख्यात्मक मान दर्ज कर सकता है। इसे श्वेतसूची पद्धति के साथ लागू करें, और आपके पास एक अधिक सुरक्षित प्रणाली होगी।

तीसरा आइटम सिंटैक्टिक पैरामीटर्स के एन्क्रिप्शन के बारे में है जैसे कि दर्ज किए गए वर्ण और रिक्त स्थान। नतीजतन, श्वेतसूचीकरण विधि, इनपुट की सिंटैक्टिक जांच, और इनपुट की एन्क्रिप्शन आपको ओएस कमांड इंजेक्शन से बचाती है।

इंजेक्शन के हमले हर दिन विकसित होते हैं

विभिन्न आक्रमण तकनीकों के साथ इंजेक्शन के कई तरीके हैं, जैसे OS कमांड, SQL, SSI और XPath। उनमें से प्रत्येक को रोकने की कोशिश करना आसान नहीं है। ध्यान रखें कि ये सभी हमले हर दिन विकसित होते हैं और उन छोटी-छोटी कमजोरियों का फायदा उठाते हैं जिन्हें डेवलपर्स ने नजरअंदाज कर दिया था। इसलिए यह महत्वपूर्ण है कि आप हमेशा अद्यतित रहें और साइबर सुरक्षा की दुनिया में वर्तमान विकास का बारीकी से पालन करें।