Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

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

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
SealSecurityAssignment — CVE-2023-26136 भेद्यता पर शोध | Kitploit
उपकरण/GitHubGitHub/cucumberanorsncompany/sealsecurityassignment
स्थैतिक विश्लेषणभेद्यता विश्लेषणकोड विश्लेषणशोषणवेब सुरक्षालर्निंग और शिक्षा
GitHubcucumberanorsncompany/sealsecurityassignment

SealSecurityAssignment

CVE-2023-26136 भेद्यता पर शोध

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
रिपॉजिटरी देखें
1202 साल पहलेअभी तक समीक्षित नहीं
साझा करें

SealSecurityAssignment

CVE-2023-26136 भेद्यता पर शोध कर रहा है

भेद्यता पर अनुसंधान: CVE-2023-26136

विवरण:

पैकेज tough-cookie के 4.1.3 से पहले के संस्करण rejectPublicSuffixes=false मोड में CookieJar का उपयोग करते समय कुकीज़ के अनुचित हैंडलिंग के कारण Prototype Pollution के लिए संवेदनशील हैं। यह समस्या वस्तुओं के आरंभीकरण के तरीके से उत्पन्न होती है।

https://nvd.nist.gov/vuln/detail/CVE-2023-26136

परिचय:

प्रोटोटाइप प्रदूषण क्या है?

जावास्क्रिप्ट में ऑब्जेक्ट की अवधारणा है, जो कुछ हद तक शब्दकोशों (dictionaries) की तरह है। एक ऑब्जेक्ट विभिन्न प्रकार के चर (जैसे string, Boolean, int आदि) का एक सेट रख सकता है; चर का नाम एक कुंजी (key) है, और इसका मान value है, यदि हम शब्दकोशों और वस्तुओं की उपमा जारी रखें। अधिक सटीक रूप से, ऑब्जेक्ट स्वयं डेटा संरचना के रूप में शब्दकोश के अनुरूप है, और प्रत्येक चर एक कुंजी-मान जोड़ी के अनुरूप है। ऑब्जेक्ट में proto कीवर्ड भी होता है जो इसके प्रोटोटाइप को संशोधित करके किसी ऑब्जेक्ट में अतिरिक्त चर जोड़ने में सक्षम बनाता है। प्रोटोटाइप प्रदूषण (Prototype Pollution) एक हमला है जिसमें हमलावर proto कीवर्ड के माध्यम से, अपने ऑब्जेक्ट में अतिरिक्त चर जोड़कर उसे दूषित करता है। ब्राउज़र कंसोल के साथ नीचे दी गई इंटरेक्शन हमले को प्रदर्शित करती है।

image

जैसा कि हम देख सकते हैं, हमारे पास दो उपयोगकर्ता हैं: admin1 और user1। admin1 ऑब्जेक्ट में एक बूलियन चर है: "isAdmin", जो true पर सेट है। User1 में यह चर बिल्कुल नहीं है। पंक्ति 7 पर, हम user1 के प्रोटोटाइप में isAdmin चर जोड़ते हैं, और भले ही पंक्ति 10 से स्पष्ट है कि चर user1 के ऑब्जेक्ट में ही नहीं जोड़ा गया है, कंसोल इस बार सकारात्मक प्रतिक्रिया देता है, जब हम user1.isAdmin का मान जांचते हैं। ऐसा इसलिए है क्योंकि user1 अपने प्रोटोटाइप के गुणों को प्राप्त (inherit) कर रहा है।

image

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

कुकीज़ क्या हैं?

कुकीज़ (अक्सर इंटरनेट कुकीज़ के रूप में जानी जाती हैं) टेक्स्ट फ़ाइलें होती हैं जिनमें छोटे डेटा टुकड़े होते हैं — जैसे उपयोगकर्ता नाम और पासवर्ड — जो नेटवर्क का उपयोग करते समय आपके कंप्यूटर की पहचान करने के लिए उपयोग किए जाते हैं। विशिष्ट कुकीज़ का उपयोग विशिष्ट उपयोगकर्ताओं की पहचान करने और उनके वेब ब्राउज़िंग अनुभव को बेहतर बनाने के लिए किया जाता है।

सौजन्य से: कास्परस्की https://www.kaspersky.com/resource-center/definitions/cookies

CookieJar क्या है?

CookieJar कुकीज़ को संग्रहीत करने के लिए एक ऑब्जेक्ट है।

असाइनमेंट:

भेद्यता:

भेद्यता के विवरण के अनुसार, यह Tough-Cookie द्वारा कुकीज़ को आरंभ करने के तरीके से उत्पन्न होती है। चूंकि कुकीज़ ऑब्जेक्ट हैं, वे सैद्धांतिक रूप से कम से कम, Prototype Pollution के लिए संवेदनशील हैं।

जोखिम:

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

पैच:

पैच फ़ाइल memstore.js में किया गया था। इस ट्रैकिंग के साथ-साथ पैच के अनुसार, जो संस्करण 4.1.3 में पेश किया गया था, भेद्यता को पैच करने के लिए, हमें कुकीज़ को एक मैप में स्टोर करने या this.idx ऑब्जेक्ट बनाने की आवश्यकता है। this.idx = {} के बजाय this.idx = Object.create(null); का उपयोग करके, मैं अपने सुझाव का अभ्यास करता हूं कि परिचय में प्रोटोटाइप प्रदूषण को कैसे रोका जाए, अर्थात null प्रोटोटाइप से विरासत में लेकर और प्रोटोटाइप श्रृंखला को काट दिया जाए।

भेद्यता का परीक्षण (index.js):

Snyk ने चर्चित भेद्यता के लिए एक Proof of Concept (PoC) प्रकाशित किया था। मैंने इस पर index.js बनाया। अपवादों को पकड़ने के लिए try-catch लॉजिक में लपेटा, परीक्षण की प्रगति पर नज़र रखने के लिए अतिरिक्त आउटपुट जोड़ा और आवश्यक आउटपुट (जैसे "EXPLOITED SUCCESSFULLY" या "EXPLOITED FAILED") के साथ समाप्त हुआ। कमांड चलाने पर: npm install [email protected] && node index.js हमें निम्नलिखित आउटपुट मिलता है:

image

कमांड चलाने पर: npm install ./tough-cookie-2.5.0-PATCHED.tgz && node index.js हमें निम्नलिखित आउटपुट मिलता है:

image

दोनों परिदृश्यों (प्रकाशित 2.5.0 संस्करण और मेरे पैच किए गए संस्करण के साथ चलाने पर), हम सामान्य कुकी के साथ-साथ शोषित कुकी को सेट करने में सफल रहे, लेकिन पैच किए गए संस्करण में, हम शोषित कुकी तक पहुंचने में विफल रहे।

सारांश:

इस असाइनमेंट में मैंने Prototype Pollution हमले के बारे में सीखा, जावास्क्रिप्ट ऑब्जेक्ट के बारे में सीखा और Tough-Cookie पैकेज से परिचित हुआ।

टूल डाउनलोड करें