
Node.js और Java अनुप्रयोगों में विभिन्न कमजोरियों का शोषण करने के लिए एक चरण-दर-चरण कार्यशाला
इस चरण-दर-चरण कार्यशाला में आप सीखेंगे कि Node.js और Java एप्लिकेशन में पैकेजों के संवेदनशील संस्करणों में मौजूद विभिन्न वास्तविक विश्व की कमजोरियों का शोषण कैसे करें।
आप इस कार्यशाला को 2 अलग-अलग तरीकों से कर सकते हैं
या
यह कार्यशाला आपको कई जानबूझकर संवेदनशील एप्लिकेशनों को स्थापित करने और उनका शोषण करने के माध्यम से ले जाएगी। एप्लिकेशन ज्ञात कमजोरियों वाले वास्तविक दुनिया के पैकेजों का उपयोग करेंगे, जिनमें शामिल हैं:
ये शोषण कई एप्लिकेशनों में मौजूद हैं, जिनमें से अधिकांश को आपको स्थानीय रूप से या क्लाउड इंस्टेंस पर स्थापित करने की आवश्यकता होगी। नीचे दिए गए निर्देश आपको स्थानीय स्थापनाओं के माध्यम से मार्गदर्शन करेंगे, लेकिन आप उन्हें दूरस्थ क्लाउड इंस्टेंस पर भी आज़माने के लिए स्वागत है।
इस कार्यशाला में प्रत्येक कमजोरी खंड के लिए, आपको कमजोरी के बारे में जानकारी के साथ-साथ उस पैकेज के बारे में भी जानकारी दी जाएगी जिसमें वह मौजूद है। आपको प्रोत्साहित किया जाता है कि पहले बिना किसी संकेत को पढ़े, परीक्षण और त्रुटि से एप्लिकेशन को हैक करने का प्रयास करें। सोचें कि आप एप्लिकेशन की स्वच्छता को कैसे धोखा दे सकते हैं और एक हैकर के दिमाग में प्रवेश करें। संकेत तब दिए गए हैं जब आप अटक जाते हैं, इसलिए उन्हें क्रम में तभी पढ़ें जब आपको मदद की आवश्यकता हो। यदि आप बिना संकेतों के हैक पूरा कर सकते हैं, तो यह बहुत अच्छा है! हालांकि बाद में संकेतों को पढ़ना अच्छा हो सकता है ताकि यह सुनिश्चित हो सके कि आप उसी तरह से अंदर आए जैसे हमने किया था! साथ ही सीखने के लिए उनमें छोटी-छोटी युक्तियाँ भी हो सकती हैं।
अपनी पसंद के अनुसार पहले उपयुक्त स्थापना मैनुअल चुनें
अपने पसंदीदा ब्राउज़र से, http://localhost:3001 पर जाएं और आपको निम्नलिखित पृष्ठ दिखाई देना चाहिए।

साइट के साथ कुछ मिनट खेलें, और विशेष रूप से, सामान्य टेक्स्ट "दूध खरीदें" और मार्कडाउन "बहुत सारा दूध खरीदें" का उपयोग करके कुछ टूडू आइटम बनाएं। होमपेज के नीचे से लिंक किए गए बहुत ही साधारण "अबाउट" पेज पर भी नेविगेट करें। इस अबाउट पेज को बनाने में उपयोग किए गए CSS-फू का आनंद लें। नोट: PR जो इस पेज को बेहतर दिखाते हैं, वे मर्ज नहीं किए जाएंगे ;o)

सबसे पहले, इसे नीले (रक्षात्मक) पक्ष से देखते हैं। गूफ़ एप्लिकेशन को अपने खुद के GitHub खाते में फोर्क करें। एप्लिकेशन GitHub पर यहाँ पाया जा सकता है: https://github.com/snyk/goof। हमें अपने एप्लिकेशन को स्कैन करने की आवश्यकता है ताकि एप्लिकेशन में मौजूद प्रत्यक्ष और अप्रत्यक्ष निर्भरताओं के साथ-साथ प्रत्येक लाइब्रेरी में कमजोरियों को समझ सकें। ऐसा करने के लिए, https://snyk.io पर जाएं और साइट के ऊपरी दाएं कोने पर "Sign up" या "Log in" (यदि आप पहले से उपयोगकर्ता हैं) पर क्लिक करें:

"Log in with your GitHub" बटन पर क्लिक करें:

इसके बाद, उस गूफ़ प्रोजेक्ट को आयात करें जिसे आपने अभी क्लोन किया था। अपनी GitHub रेपो सूची से goof चुनें और विंडो के ऊपरी दाएं कोने पर "Import Projects" बटन पर क्लिक करें।

जब प्रोजेक्ट स्कैन हो जाता है, तो आप इसे अपने डैशबोर्ड में देखेंगे:

प्रोजेक्ट पृष्ठ देखने के लिए package.json लिंक पर क्लिक करें, जिसमें सुरक्षा कमजोरियों की पूरी सूची शामिल है:

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

निर्देशिका ट्रैवर्सल हमला (जिसे पथ ट्रैवर्सल भी कहा जाता है) का उद्देश्य उन फ़ाइलों और निर्देशिकाओं तक पहुंचना है जो इच्छित फ़ोल्डर के बाहर संग्रहीत हैं। "डॉट-डॉट-स्लैश" (../) अनुक्रमों और उनके विविधताओं में हेरफेर करके, या पूर्ण फ़ाइल पथों का उपयोग करके, फ़ाइल सिस्टम पर संग्रहीत मनमानी फ़ाइलों और निर्देशिकाओं तक पहुंचना संभव हो सकता है, जिसमें एप्लिकेशन स्रोत कोड, कॉन्फ़िगरेशन और अन्य महत्वपूर्ण सिस्टम फ़ाइलें शामिल हैं।
निर्देशिका ट्रैवर्सल कमजोरियों को आम तौर पर दो प्रकारों में विभाजित किया जा सकता है:
गूफ़ एप्लिकेशन में वह पैकेज जिसमें निर्देशिका ट्रैवर्सल कमजोरी है जिसका हम शोषण करेंगे, वह st पैकेज है। st दस्तावेज़ देखें और लाइब्रेरी से परिचित हों।
अब आपको पता होना चाहिए कि निर्देशिका ट्रैवर्सल क्या है, st पैकेज क्या करता है और आप एप्लिकेशन को हैक करने के लिए आगे बढ़ सकते हैं — अब आप लाल टीम पर वापस आ गए हैं! एप्लिकेशन के चारों ओर देखें कि st पैकेज का उपयोग कहाँ किया जा सकता है और एक ऐसी निर्देशिका में जाने का प्रयास करें जहाँ आपको पहुंच की अनुमति नहीं होनी चाहिए।
यदि आप अटक जाते हैं तो आपको सुराग देने के लिए यहाँ कुछ संकेत दिए गए हैं - अपनी पूरी कोशिश करें कि जब तक आप स्वयं प्रयास न कर लें, तब तक उन्हें न देखें और केवल जब आपको मदद की आवश्यकता हो, तब देखें।
संकेत 1 देखने के लिए क्लिक करें यहाँ।
संकेत 2 देखने के लिए क्लिक करें यहाँ।
संकेत 3 देखने के लिए क्लिक करें यहाँ।
संकेत 4 देखने के लिए क्लिक करें यहाँ।
संकेत 5 देखने के लिए क्लिक करें यहाँ।
संकेत 6 देखने के लिए क्लिक करें यहाँ।
संकेत 7 देखने के लिए क्लिक करें यहाँ।
संकेत 8 देखने के लिए क्लिक करें यहाँ।
संकेत 9 देखने के लिए क्लिक करें यहाँ।