html injection tutorial
HTML इंजेक्शन में गहराई से देखें:
HTML इंजेक्शन की बेहतर धारणा पाने के लिए, सबसे पहले हमें पता होना चाहिए कि HTML क्या है।
HTML एक मार्कअप भाषा है, जहां सभी वेबसाइट के तत्व टैग में लिखे गए हैं। इसका इस्तेमाल ज्यादातर वेबसाइट बनाने के लिए किया जा रहा है। वेब पेज HTML दस्तावेज़ों के रूप में ब्राउज़र को भेजे जा रहे हैं। फिर उन HTML दस्तावेजों को सामान्य वेबसाइटों में परिवर्तित किया जा रहा है और अंतिम उपयोगकर्ताओं के लिए प्रदर्शित किया गया है।
यह ट्यूटोरियल आपको HTML इंजेक्शन, इसके प्रकारों और निवारक उपायों के साथ-साथ अवधारणा की आसान समझ के लिए सरल शब्दों में व्यावहारिक उदाहरण देगा।
आप क्या सीखेंगे:
- HTML इंजेक्शन क्या है?
- HTML इंजेक्शन के प्रकार
- HTML इंजेक्शन कैसे किया जाता है?
- HTML इंजेक्शन के खिलाफ टेस्ट कैसे करें?
- HTML इंजेक्शन को कैसे रोकें?
- अन्य हमलों के साथ तुलना
- निष्कर्ष
- अनुशंसित पाठ
HTML इंजेक्शन क्या है?
इस तरह के इंजेक्शन हमले का सार वेबसाइट के कमजोर हिस्सों के माध्यम से HTML कोड को इंजेक्ट करना है। दुर्भावनापूर्ण उपयोगकर्ता वेबसाइट के डिज़ाइन या किसी भी जानकारी को बदलने के उद्देश्य से किसी भी असुरक्षित क्षेत्र के माध्यम से HTML कोड भेजता है, जिसे उपयोगकर्ता को प्रदर्शित किया जाता है।
परिणाम में, उपयोगकर्ता डेटा देख सकता है, जो दुर्भावनापूर्ण उपयोगकर्ता द्वारा भेजा गया था। इसलिए, सामान्य तौर पर, HTML इंजेक्शन केवल पृष्ठ के दस्तावेज़ के लिए मार्कअप भाषा कोड का इंजेक्शन होता है।
इस प्रकार के इंजेक्शन हमले के दौरान भेजे जाने वाले डेटा बहुत भिन्न हो सकते हैं। यह कुछ HTML टैग्स हो सकते हैं, जो केवल भेजी गई सूचनाओं को प्रदर्शित करेंगे। इसके अलावा, यह पूरे नकली फॉर्म या पेज हो सकता है। जब यह हमला होता है, तो ब्राउज़र आमतौर पर दुर्भावनापूर्ण उपयोगकर्ता डेटा को वैध के रूप में व्याख्या करता है और इसे प्रदर्शित करता है।
किसी वेबसाइट का रूप बदलना एकमात्र जोखिम नहीं है, जो इस प्रकार का हमला लाता है। यह XSS हमले के समान है, जहां दुर्भावनापूर्ण उपयोगकर्ता अन्य व्यक्ति की पहचान चुरा लेता है। इसलिए इस इंजेक्शन हमले के दौरान किसी अन्य व्यक्ति की पहचान की चोरी भी हो सकती है।
HTML इंजेक्शन के प्रकार
इस हमले को समझना या प्रदर्शन करना बहुत मुश्किल नहीं लगता है, क्योंकि HTML को काफी सरल भाषा माना जाता है। हालांकि, इस प्रकार के हमले को करने के लिए अलग-अलग तरीके हैं। हम इस इंजेक्शन के विभिन्न प्रकारों को भी अलग कर सकते हैं।
सबसे पहले, विभिन्न प्रकार के जोखिमों को हल किया जा सकता है, जो वे लाते हैं।
जैसा कि उल्लेख किया गया है, यह इंजेक्शन हमला दो अलग-अलग उद्देश्यों के साथ किया जा सकता है:
- प्रदर्शित वेबसाइट का स्वरूप बदलने के लिए।
- किसी अन्य व्यक्ति की पहचान को चुराने के लिए
इसके अलावा, इस इंजेक्शन के हमले को वेबसाइट के विभिन्न हिस्सों यानी डेटा इनपुट फ़ील्ड और वेबसाइट के लिंक के माध्यम से किया जा सकता है।
हालांकि, मुख्य प्रकार हैं:
- संग्रहीत HTML इंजेक्शन
- प्रतिबिंबित HTML इंजेक्शन
# 1) संग्रहीत HTML इंजेक्शन:
उन दो इंजेक्शन प्रकारों के बीच मुख्य अंतर यह है कि संग्रहीत इंजेक्शन हमला तब होता है जब वेब सर्वर में दुर्भावनापूर्ण HTML कोड सहेजा जाता है और हर बार जब उपयोगकर्ता एक उपयुक्त कार्यक्षमता कहता है, तो इसे निष्पादित किया जा रहा है।
कैसे पढ़ें .dat फ़ाइल
हालांकि, परिलक्षित इंजेक्शन हमले के मामले में, दुर्भावनापूर्ण HTML कोड स्थायी रूप से वेबसर्वर पर संग्रहीत नहीं किया जा रहा है। रिफ्लेक्टेड इंजेक्शन तब होता है जब वेबसाइट तुरंत दुर्भावनापूर्ण इनपुट का जवाब देती है।
# 2) प्रतिबिंबित HTML इंजेक्शन:
इसे फिर से और अधिक प्रकारों में विभाजित किया जा सकता है:
- परिलक्षित जी.ई.टी.
- परिलक्षित POST
- परावर्तित URL
परावर्तित इंजेक्शन हमले को HTTP तरीकों यानी, GET और POST के अनुसार अलग तरीके से किया जा सकता है। मैं याद दिलाता हूं, कि POST विधि के साथ डेटा भेजा जा रहा है और GET विधि के साथ डेटा का अनुरोध किया जा रहा है।
यह जानने के लिए कि उपयुक्त वेबसाइट के तत्वों के लिए किस पद्धति का उपयोग किया जाता है, हम पृष्ठ के स्रोत की जांच कर सकते हैं।
उदाहरण के लिए , एक परीक्षक लॉगिन फ़ॉर्म के लिए स्रोत कोड की जांच कर सकता है और पा सकता है कि इसके लिए किस पद्धति का उपयोग किया जा रहा है। तब उपयुक्त HTML इंजेक्शन विधि के अनुसार चयन किया जा सकता है।
परिलक्षित जीईटी इंजेक्शन तब होता है, जब हमारा इनपुट वेबसाइट पर प्रदर्शित (परिलक्षित) हो रहा होता है। मान लीजिए, हमारे पास खोज फ़ॉर्म के साथ एक सरल पृष्ठ है, जो इस हमले के लिए असुरक्षित है। फिर यदि हम कोई HTML कोड टाइप करते हैं, तो यह हमारी वेबसाइट पर दिखाई देगा और उसी समय, यह HTML दस्तावेज़ में इंजेक्ट किया जाएगा।
उदाहरण के लिए, हम HTML टैग के साथ सरल पाठ दर्ज करते हैं:
परिलक्षित POST HTML इंजेक्शन थोड़ा और मुश्किल है। यह तब होता है जब सही POST विधि मापदंडों के बजाय एक दुर्भावनापूर्ण HTML कोड भेजा जा रहा है।
उदाहरण के लिए , हमारे पास एक लॉगिन फ़ॉर्म है, जो HTML हमले के लिए असुरक्षित है। लॉगिन फॉर्म में टाइप किया गया डेटा POST विधि के साथ भेजा जा रहा है। फिर, यदि हम सही मापदंडों के बजाय कोई HTML कोड टाइप करेंगे, तो इसे POST विधि के साथ भेजा जाएगा और वेबसाइट पर प्रदर्शित किया जाएगा।
प्रतिबिंबित POST HTML हमले करने के लिए, एक विशेष ब्राउज़र के प्लगइन का उपयोग करने की सिफारिश की जाती है, जो भेजे गए डेटा को नकली करेगा। इसमें से एक मोज़िला फ़ायरफ़ॉक्स प्लगइन 'छेड़छाड़ डेटा' है। प्लगइन भेजे गए डेटा को लेता है और उपयोगकर्ता को इसे बदलने की अनुमति देता है। फिर परिवर्तित डेटा वेबसाइट पर भेजा और प्रदर्शित किया जा रहा है।
उदाहरण के लिए, अगर हम ऐसे प्लगइन का उपयोग करते हैं तो हम उसी HTML कोड को भेजेंगे या खोज फ़ॉर्म कोड, यदि आप कुछ अधिक जटिल के साथ परीक्षण करना चाहते हैं सर्च करने के लिए टेक्स्ट टाइप करें
यदि कहीं सहेजा जा रहा HTML कोड प्रदर्शित होता है, तो परीक्षक सुनिश्चित कर सकता है, कि यह इंजेक्शन हमला संभव है। फिर एक और अधिक जटिल कोड की कोशिश की जा सकती है - के लिए उदाहरण , फर्जी प्रवेश पत्र प्रदर्शित करने के लिए।
एक अन्य समाधान HTML इंजेक्शन स्कैनर है। इस हमले के खिलाफ स्वचालित रूप से स्कैन करने से आपका बहुत समय बच सकता है। मैं सूचित करना चाहूंगा, कि अन्य हमलों की तुलना में HTML इंजेक्शन परीक्षण के लिए कई उपकरण नहीं हैं।
हालांकि, एक संभव समाधान WAS अनुप्रयोग है। WAS को एक बहुत मजबूत भेद्यता स्कैनर के रूप में नामित किया जा सकता है, क्योंकि यह विभिन्न आदानों के साथ परीक्षण करता है और न केवल पहले विफल होने से रुकता है।
यह परीक्षण के लिए सहायक है, शायद जैसा कि ऊपर दिए गए ब्राउज़र प्लगइन 'टैम्पर डेटा' में बताया गया है, यह भेजा गया डेटा है, परीक्षक को इसे बदलने और ब्राउज़र को भेजने की अनुमति देता है।
हम कुछ ऑनलाइन स्कैनिंग टूल भी पा सकते हैं, जहां आपको केवल वेबसाइट का लिंक प्रदान करना है और HTML हमले के खिलाफ स्कैन करना होगा। जब परीक्षण पूरा हो जाता है, तो सारांश प्रदर्शित किया जाएगा।
मैं टिप्पणी करना चाहूंगा कि स्कैनिंग उपकरण का चयन करते समय, हमें इस बात पर ध्यान देना होगा कि यह परिणामों का विश्लेषण कैसे करता है और क्या यह पर्याप्त रूप से सटीक है या नहीं।
हालांकि, यह ध्यान में रखा जाना चाहिए, कि मैन्युअल रूप से परीक्षण को नहीं भूलना चाहिए। इस तरह हम यह सुनिश्चित कर सकते हैं कि क्या सटीक इनपुट की कोशिश की जाती है और क्या सटीक परिणाम हमें मिल रहे हैं। इस तरह से परिणामों का विश्लेषण करना भी आसान है।
एक सॉफ्टवेयर परीक्षण करियर में अपने अनुभव से, मैं यह टिप्पणी करना चाहूंगा कि दोनों परीक्षण तरीकों के लिए हमें इस प्रकार के इंजेक्शन का अच्छा ज्ञान होना चाहिए। अन्यथा, एक उपयुक्त स्वचालन उपकरण का चयन करना और उसके परिणामों का विश्लेषण करना मुश्किल होगा। इसके अलावा, यह हमेशा सिफारिश की जाती है कि मैन्युअल रूप से परीक्षण न करें, क्योंकि यह हमें गुणवत्ता के बारे में अधिक सुनिश्चित करता है।
HTML इंजेक्शन को कैसे रोकें?
इसमें कोई संदेह नहीं है, कि इस हमले का मुख्य कारण डेवलपर की असावधानी और ज्ञान की कमी है। इस प्रकार का इंजेक्शन हमला तब होता है जब इनपुट और आउटपुट ठीक से मान्य नहीं होते हैं। इसलिए HTML हमले को रोकने के लिए मुख्य नियम उचित डेटा सत्यापन है।
हर इनपुट की जाँच होनी चाहिए अगर उसमें कोई स्क्रिप्ट कोड या कोई HTML कोड हो। आमतौर पर यह जाँच की जा रही है, यदि कोड में कोई विशेष स्क्रिप्ट या HTML ब्रैकेट हो -,।
यदि कोड में कोई विशेष कोष्ठक है तो जाँच के लिए कई कार्य हैं। चेकिंग फ़ंक्शन का चयन उस प्रोग्रामिंग भाषा पर निर्भर करता है, जिसका आप उपयोग कर रहे हैं।
यह याद रखना चाहिए, यह अच्छा है सुरक्षा परीक्षण भी रोकथाम का एक हिस्सा है। मैं ध्यान देना चाहूंगा, कि HTML इंजेक्शन के हमले बहुत कम होते हैं, इसके बारे में जानने के लिए कम साहित्य है और स्वचालित परीक्षण के लिए चयन करने के लिए कम स्कैनर। हालांकि, सुरक्षा परीक्षण का यह हिस्सा वास्तव में याद नहीं किया जाना चाहिए, क्योंकि आप कभी नहीं जानते कि ऐसा कब हो सकता है।
साथ ही, डेवलपर और परीक्षक दोनों को इस बात की अच्छी जानकारी होनी चाहिए कि यह हमला कैसे किया जा रहा है। इस हमले की प्रक्रिया की अच्छी समझ इसे रोकने में मदद कर सकती है।
अन्य हमलों के साथ तुलना
अन्य संभावित हमलों की तुलना में, इस हमले को निश्चित रूप से इतना जोखिम भरा नहीं माना जाएगा एसक्यूएल इंजेक्षन या जावास्क्रिप्ट इंजेक्शन हमला या XSS भी हो सकता है। यह पूरे डेटाबेस को नष्ट नहीं करेगा या डेटाबेस से सभी डेटा चोरी नहीं करेगा। हालांकि, इसे महत्वहीन नहीं माना जाना चाहिए।
जैसा कि पहले उल्लेख किया गया है, इस प्रकार के इंजेक्शन का मुख्य उद्देश्य प्रदर्शित वेबसाइट की उपस्थिति को दुर्भावनापूर्ण उद्देश्य से बदल रहा है, आपकी प्रेषित जानकारी या डेटा को अंतिम उपयोगकर्ता को प्रदर्शित करता है। उन जोखिमों को कम महत्वपूर्ण माना जा सकता है।
हालाँकि, वेबसाइट के स्वरूप को बदल देने से आपकी कंपनी की प्रतिष्ठा प्रभावित हो सकती है। यदि कोई दुर्भावनापूर्ण उपयोगकर्ता आपकी वेबसाइट की उपस्थिति को नष्ट कर देगा, तो यह आपकी कंपनी के बारे में आगंतुक की राय बदल सकता है।
यह याद रखना चाहिए, कि एक और जोखिम, जो वेबसाइट पर यह हमला लाता है, अन्य उपयोगकर्ता की पहचान को चुरा रहा है।
जैसा कि उल्लेख किया गया है, HTML इंजेक्शन के साथ दुर्भावनापूर्ण उपयोगकर्ता पूरे पृष्ठ को इंजेक्ट कर सकता है, जिसे अंतिम उपयोगकर्ता के लिए प्रदर्शित किया जाएगा। फिर अगर अंतिम उपयोगकर्ता नकली लॉगिन पेज में अपने लॉगिन डेटा को इंगित करेगा, तो यह दुर्भावनापूर्ण उपयोगकर्ता को भेजा जाएगा। यह मामला, निश्चित रूप से, इस हमले का अधिक जोखिम भरा हिस्सा है।
यह उल्लेख किया जाना चाहिए, कि अन्य उपयोगकर्ता के डेटा को चुराने के लिए, इस प्रकार के हमले को कम बार चुना जाता है, क्योंकि बहुत सारे अन्य संभावित हमले हैं।
हालाँकि, यह XSS हमले के समान है, जो उपयोगकर्ता की कुकीज़ और अन्य उपयोगकर्ताओं की पहचान चुराता है। XSS हमले भी हैं, जो HTML आधारित हैं। इसलिए XSS और HTML हमले के खिलाफ परीक्षण बहुत समान हो सकता है और एक साथ प्रदर्शन किया जा सकता है।
निष्कर्ष
चूंकि HTML इंजेक्शन अन्य हमलों की तरह लोकप्रिय नहीं है, इसलिए इसे अन्य हमलों की तुलना में कम जोखिम भरा माना जा सकता है। इसलिए इस प्रकार के इंजेक्शन के खिलाफ परीक्षण कभी-कभी छोड़ दिया जाता है।
इसके अलावा, यह ध्यान देने योग्य है, कि HTML इंजेक्शन के बारे में निश्चित रूप से कम साहित्य और जानकारी है। इसलिए परीक्षक इस प्रकार के परीक्षण नहीं करने का निर्णय ले सकते हैं। हालाँकि, इस मामले में, HTML हमले के जोखिमों का पर्याप्त मूल्यांकन नहीं किया गया है।
जैसा कि हमने इस ट्यूटोरियल में विश्लेषण किया है, इस प्रकार के इंजेक्शन से आपकी वेबसाइट का पूरा डिज़ाइन नष्ट हो सकता है या उपयोगकर्ता का लॉगिन डेटा भी चोरी हो सकता है। इसलिए एचटीएमएल इंजेक्शन को सुरक्षा परीक्षण में शामिल करने और अच्छे ज्ञान का निवेश करने की अत्यधिक अनुशंसा की जाती है।
क्या आप किसी भी विशिष्ट HTML इंजेक्शन में आए हैं? नीचे टिप्पणी अनुभाग में अपने अनुभव साझा करने के लिए स्वतंत्र महसूस करें।
सॉफ्टवेयर परीक्षण के उदाहरणों में परीक्षण के मामले
अनुशंसित पाठ
- शुरुआती के लिए गहराई से ग्रहण ट्यूटोरियल
- SQL इंजेक्शन परीक्षण ट्यूटोरियल (उदाहरण और SQL इंजेक्शन हमले की रोकथाम)
- उदाहरणों के साथ अजगर डेटाइम ट्यूटोरियल
- क्रॉस साइट स्क्रिप्टिंग (XSS) आक्रमण ट्यूटोरियल, प्रकार और रोकथाम के साथ
- जावास्क्रिप्ट इंजेक्शन ट्यूटोरियल: वेबसाइट पर टेस्ट और जेएस इंजेक्शन हमलों को रोकें
- उदाहरणों के साथ यूनिक्स शैल स्क्रिप्टिंग ट्यूटोरियल
- सेलेनियम उदाहरणों के साथ पाठ ट्यूटोरियल द्वारा तत्व का पता लगाएं
- हाथों पर उदाहरण के साथ पायथन मेन फंक्शन ट्यूटोरियल