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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
seal-security-nuget-demo-net7 — .NET 7 फोर्क ऑफ seal-security-nuget-demo: वही CVE-2024-21907 एक्सप्लॉइट कहानी, .NET SDK 7 पर लॉक किए गए ग्राहकों के लिए पुनः लक्षित। | Kitploit
उपकरण/GitHubGitHub/isecuritytw/seal-security-nuget-demo-net7
भेद्यता विश्लेषणDevSecOpsआपूर्ति श्रृंखला सुरक्षालर्निंग और शिक्षाचयनित संसाधन
GitHubisecuritytw/seal-security-nuget-demo-net7

seal-security-nuget-demo-net7

.NET 7 फोर्क ऑफ seal-security-nuget-demo: वही CVE-2024-21907 एक्सप्लॉइट कहानी, .NET SDK 7 पर लॉक किए गए ग्राहकों के लिए पुनः लक्षित।

रिपॉजिटरी देखें
195 महीने पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें

ब्राउज़र + CLI डेमो (NuGet/C#) — .NET 7 संस्करण

.NET 7 फोर्क क्यों?

यह कैनोनिकल seal-security-nuget-demo (जो net9.0 को लक्षित करता है) का पुनर्लक्षित फोर्क है। एक्सप्लॉइट कहानी, कंट्रोलर, और सील्ड-पैकेज सूची समान हैं — केवल TargetFramework भिन्न है।

यह इसलिए मौजूद है क्योंकि अधिकांश एंटरप्राइज़ ग्राहक मांग पर नवीनतम .NET SDK पर नहीं जा सकते। .NET 7 ने 14 मई, 2024 को समर्थन-समाप्ति प्राप्त की, लेकिन वास्तविक प्रोडक्शन वातावरण अभी भी संगतता, प्रमाणन, या परिचालन कारणों से इस पर चलते हैं। यह ठीक वही मामला है जिसके लिए Seal Security डिज़ाइन किया गया है: जब कोई ग्राहक प्रमुख संस्करण अपग्रेड नहीं ले सकता (या नहीं लेना चाहता), Seal कमजोर निर्भरता को उसी स्थान पर समान संस्करण के अंतर्गत पैच करता है, बिना किसी सार्वजनिक API परिवर्तन और बिना ग्राहक के ऐप में कोई कोड संपादन के। यह डेमो उस चर्चा को ग्राहक के वास्तविक स्टैक पर होने देता है, बजाय उनसे पहले net8/net9 इंस्टॉल करने के लिए कहने के।

फोर्क global.json के माध्यम से SDK को 7.0.x पर पिन करता है ताकि डेमो के दौरान आकस्मिक अपग्रेड न आ सकें।


अवलोकन

यह डेमो एप्लिकेशन एक सरल ASP.NET Core स्वागत पृष्ठ है जो उपयोगकर्ता इनपुट को कॉन्फ़िग ऑब्जेक्ट के रूप में पार्स करने के लिए Newtonsoft.Json 12.0.2 का उपयोग करता है। ऐप में एक नाम फ़ील्ड है — अपना नाम टाइप करें, Go पर क्लिक करें, और यह "Welcome, alice!" प्रदर्शित करता है। पर्दे के पीछे यह इनपुट को Newtonsoft.Json के JsonConvert.DeserializeObject<NestedConfig>() के माध्यम से पास करता है। बस इतना ही — एक लोकप्रिय JSON लाइब्रेरी का पूरी तरह से मानक उपयोग।

समस्या यह है कि Newtonsoft.Json 12.0.2 (और 13.0.1 से पहले के संस्करण) में CVE-2024-21907 है — एक उच्च गंभीरता वाली Denial of Service भेद्यता जिसका CVSS स्कोर 7.5 (HIGH) है। यह डेमो दिखाता है कि Seal Security बिना प्रमुख संस्करण अपग्रेड की आवश्यकता के भेद्यता को स्थान पर कैसे पैच करता है।


भेद्यता: CVE-2024-21907

भेद्यता क्या है?

Newtonsoft.Json की JsonConvert.DeserializeObject<T>() विधि का शोषण गहराई से नेस्टेड JSON पेलोड बनाकर किया जा सकता है। टाइप किए गए ऑब्जेक्ट (POCO) में डिसीरियलाइज़ करते समय, लाइब्रेरी का JsonSerializerInternalReader वास्तव में पुनरावर्ती कॉल करता है (CreateValueInternal → CreateObject → PopulateObject → SetPropertyValue → CreateValueInternal) जो स्टैक ओवरफ्लो का कारण बनता है, जिससे एप्लिकेशन क्रैश हो जाता है (Denial of Service)।

एक्सप्लॉइट कैसे काम करता है

ऐप उपयोगकर्ता इनपुट लेता है और इसे Newtonsoft.Json के माध्यम से पार्स करता है। यदि इनपुट एक URL है, तो ऐप पहले सामग्री प्राप्त करता है — एक यथार्थवादी पैटर्न जो कॉन्फ़िग लोडर, API परीक्षक, और वेबहुक रिसीवर द्वारा उपयोग किया जाता है:

public class NestedConfig
{
    [JsonProperty("n")]
    public NestedConfig? N { get; set; }
}

var config = JsonConvert.DeserializeObject<NestedConfig>(name);

सामान्य इनपुट: alice टाइप करें → "Welcome, alice!" प्रदर्शित होता है

एक्सप्लॉइट: इस URL को नाम फ़ील्ड में पेस्ट करें और Go पर क्लिक करें:

https://raw.githubusercontent.com/seal-sec-demo-2/json-payload/main/payload.json

ऐप पता लगाता है कि यह एक URL है, json-payload प्राप्त करता है (गहराई से नेस्टेड JSON {"n":{"n":{...}}}), और इसे Newtonsoft.Json के माध्यम से पुनरावर्ती NestedConfig वर्ग में डिसीरियलाइज़ करता है — जिससे स्टैक ओवरफ्लो ट्रिगर होता है।

JsonSerializerInternalReader प्रत्येक नेस्टिंग स्तर के लिए CreateValueInternal → CreateObject → PopulateObject → SetPropertyValue के माध्यम से पुनरावृत्ति करता है। लगभग 5,000 स्तरों की गहराई पर, यह थ्रेड स्टैक को समाप्त कर देता है और एप्लिकेशन StackOverflowException के साथ क्रैश हो जाता है — प्रक्रिया तुरंत मर जाती है (कोई सुंदर त्रुटि हैंडलिंग संभव नहीं है)।

वास्तविक-विश्व प्रभाव

इस भेद्यता के साथ, हमलावर यह कर सकते हैं:

  • एप्लिकेशन को क्रैश करना दुर्भावनापूर्ण JSON पेलोड भेजकर
  • Denial of Service उत्पन्न करना जो सभी उपयोगकर्ताओं को प्रभावित करता है
  • सर्वर संसाधनों को समाप्त करना बार-बार शोषण के माध्यम से
  • रेट लिमिटिंग को बायपास करना क्योंकि प्रत्येक अनुरोध प्रक्रिया को क्रैश करता है

Newtonsoft.Json 13.0.1 में अपग्रेड क्यों नहीं करते?

सार्वजनिक रूप से उपलब्ध फिक्स के लिए संस्करण 13.0.1 में अपग्रेड करना आवश्यक है। हालाँकि, प्रमुख संस्करणों में अपग्रेड करने से अक्सर निम्नलिखित समस्याएं आती हैं:

  • ब्रेकिंग API परिवर्तन सीरियलाइज़ेशन व्यवहार में
  • संगतता समस्याएं अन्य लाइब्रेरीज़ के साथ जो विशिष्ट संस्करणों की अपेक्षा करती हैं
  • व्यापक परीक्षण आवश्यकताएं सभी सीरियलाइज़ेशन/डिसीरियलाइज़ेशन कोड पथों के लिए
  • रनटाइम व्यवहार परिवर्तन का जोखिम प्रोडक्शन में

यह "बस अपग्रेड करें" फिक्स को एक परियोजना बनाता है जो आसानी से डेवलपर समय के सप्ताह ले सकती है — इस बीच भेद्यता खुली रहती है।

Seal Security इसे कैसे ठीक करता है

Seal का पैच किया गया संस्करण (12.0.2-sp1) बिना किसी सार्वजनिक API को बदले पुनरावृत्ति गहराई सुरक्षा जोड़ता है। पैच:

  1. असीमित पुनरावृत्ति को रोकने के लिए डिफ़ॉल्ट MaxDepth सीमाएं जोड़ता है
  2. स्टैक ओवरफ्लो के बजाय उचित अपवादों के साथ गहरी नेस्टिंग को सुंदरता से संभालता है
  3. कोई सार्वजनिक API नहीं बदलता — मौजूदा कोड बिना संशोधन के काम करता रहता है

यह वही शमन रणनीति है जो Newtonsoft.Json 13.0.1 में लागू की गई है, जिसे 12.0.2 में ड्रॉप-इन प्रतिस्थापन के रूप में बैकपोर्ट किया गया है।


अन्य कमजोर निर्भरताएं

यह डेमो अन्य कमजोर NuGet पैकेज भी शामिल करता है जिन्हें Seal Security पैच कर सकता है:

log4net 2.0.5 - CVE-2018-1285 (CVSS 9.8 CRITICAL)

log4net के XML कॉन्फ़िगरेशन पार्सिंग में XML External Entity (XXE) भेद्यता। एक हमलावर जो log4net कॉन्फ़िगरेशन फ़ाइल को नियंत्रित कर सकता है, वह यह कर सकता है:

  • सर्वर से मनमानी फ़ाइलें पढ़ना
  • Server-Side Request Forgery (SSRF) करना
  • Denial of Service उत्पन्न करना

System.Net.Http पर नोट: कैनोनिकल net9 डेमो CVE-2017-0249 के लिए एक कमजोर System.Net.Http 4.3.0 संदर्भ भी भेजता है। हमने इसे इस net7 फोर्क से हटा दिया है क्योंकि .NET 7 पर System.Net.Http BCL का हिस्सा है और स्टैंडअलोन पैकेज संदर्भ एक अवशिष्ट मेटा-पैकेज है — इसके साथ dotnet add package --source <local-nupkg> के ज्ञात एज केस हैं, जो ठीक वैसे ही है जैसे Seal CLI सील्ड संस्करण लागू करता है। इसे हटाने से seal fix चरण डेमो की कहानी बदले बिना विश्वसनीय हो जाता है (HttpClient अभी भी ठीक काम करता है; रनटाइम इसे प्रदान करता है)।


पूर्वापेक्षाएँ

  • .NET 7.0 SDK (Microsoft से डाउनलोड करें)
  • Windows x64 के लिए Seal Security CLI v0.3.238 (सीधा डाउनलोड)

    Windows CLI बाइनरी v0.3.238 के बाद बंद कर दी गई थीं। v0.3.238 Windows पर NuGet उपचार के लिए पूरी तरह कार्यात्मक है।

  • Seal Security टोकन (Seal डैशबोर्ड से)

विस्तृत Windows Server इंस्टॉल + रन गाइड README-WINDOWS-SERVER.md में है। नीचे दिया गया Quick Start समान चरणों को संक्षिप्त रूप में कवर करता है।


Quick Start (स्थानीय Windows Server)

1. पर्यावरण चर सेट करें

PowerShell:

$env:SEAL_TOKEN = "your-seal-token-here"
$env:SEAL_PROJECT = "nuget-demo-net7"

2. कमजोर ऐप चलाएं (Seal से पहले)

cd seal-security-nuget-demo-net7

# Restore (nuget.org और Seal फ़ीड से खींचता है — nuget.config देखें)
dotnet restore

# Build और run
dotnet build
dotnet run

http://localhost:5000 खोलें — ऐप कमजोर निर्भरताओं के साथ चल रहा है।

सामान्य इनपुट के साथ परीक्षण करें

नाम फ़ील्ड में alice टाइप करें, Go पर क्लिक करें। आपको देखना चाहिए: "Welcome, alice!"

एक्सप्लॉइट पेलोड के साथ परीक्षण करें

निम्न URL को नाम फ़ील्ड में पेस्ट करें और Go पर क्लिक करें:

https://raw.githubusercontent.com/seal-sec-demo-2/json-payload/main/payload.json

अनपैच किया गया परिणाम: ब्राउज़र एक त्रुटि / कनेक्शन रीसेट दिखाता है — ऐप JsonSerializerInternalReader.CreateValueInternal में StackOverflowException के साथ क्रैश हो गया। प्रक्रिया मर चुकी है।

3. Seal Security फिक्स लागू करें

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