मान लीजिए कि एक सी # प्रोग्राम केवल प्रबंधित .NET कोड का उपयोग करता है, क्या उस प्रोग्राम के भीतर बफर ओवरफ़्लो सुरक्षा भेद्यता संभव है? यदि हां, तो ऐसी भेद्यता कैसे संभव होगी?क्या सी # में बफर ओवरफ्लो शोषण संभव है?
उत्तर
हां, लेकिन वे उत्पादन करने के लिए बहुत कठिन हैं। यदि आप कुछ असुरक्षित संरचनाओं का उपयोग करते हैं, न कि "सामान्य" सी # कोड के साथ, आप केवल बफर ओवरफ़्लो प्राप्त कर सकते हैं। मेमोरी दूषित कोड बिल्कुल संभव नहीं होना चाहिए, जब आपका कोड कम ट्रस्ट के साथ चल रहा हो।
बफर अतिप्रवाह के लिए कुछ संभावनाएं:
unsafe
कीवर्ड है, जो संकेत देता है का उपयोग करना। असुरक्षित कोड गलत होने के लिए जितना आसान है, सी या सी ++ में पॉइंटर आधारित कोड के रूप में।- ऐसे
Marshal
वर्ग से तरीके के रूप में असुरक्षित एपीआई, का उपयोग करते हुए - (मोनो केवल) आप सरणी सीमा जाँच (सुरक्षा बनाम प्रदर्शन व्यापार बंद)
भी कुछ अन्य तरीके हैं निष्क्रिय कर सकते हैं बफर ओवरफ्लो के अलावा स्मृति को भ्रष्ट करने के लिए।
StructLayoutKind.Explicit
- गलत देशी इंटरॉप हस्ताक्षर
(क्रम में ही सी ++ में लिखा है, इसलिए क्रम में एक बग भी भ्रष्ट स्मृति या एक बफर अतिप्रवाह सकते हैं, लेकिन मुझे लगता है कि बाहर करने पर विचार इस प्रश्न के लिए दायरे का)
केवल तभी यदि आप unsafe
कीवर्ड का उपयोग करते हैं।
एक पूर्ण अर्थ में, हाँ .NET रनटाइम में बग के कारण एक बफर शोषण संभव है। हालांकि .NET सबसे अंत उपयोगकर्ता कोड ('असुरक्षित' उपयोग को छोड़कर) को इस तरह की समस्याओं से रोकता है ताकि वास्तविक जीवन में यह कम जोखिम भरा हो।
वास्तविक जीवन में, इस तरह की अधिकांश समस्याएं मूल कोड (COM dlls आदि) से प्रबंधित कोड से आती हैं।
हाँ, असुरक्षित वातावरण में:
unsafe void bufferOverflow(string s)
{
char* ptr = stackalloc char[10];
foreach (var c in s)
{
*ptr++ = c; // Bufferoverflow if s.Length > 10
}
}
"असुरक्षित कोड की अनुमति दें" यह संकलन करने के लिए जांच की जानी है।
आप एक सरणी के साथ पारंपरिक बफर-ओवरफ्लो नहीं कर सकते हैं। यह सरणी तक पहुंचने से पहले सीमा-जांच करेगा, जब तक कि यह (सीएलआर) गारंटी दे सके कि यह सुरक्षित है।
+1। –
यह कुछ हद तक गलत है - स्टैकलॉक आपको अतिप्रवाह बफर करने की अनुमति नहीं देगा। –
- 1. जानबूझकर बफर ओवरफ्लो शोषण कार्यक्रम
- 2. बफर ओवरफ्लो
- 3. बफर ओवरफ्लो
- 4. बफर ओवरफ्लो
- 5. एक बफर ओवरफ्लो का पता लगाने
- 6. पूर्णांक अतिप्रवाह शोषण योग्य कैसे है?
- 7. "सुरक्षित" भाषाओं में सुरक्षा शोषण
- 8. क्या यूट्यूब बफर फिनिश इवेंट संभव है
- 9. कंप्यूटर का शोषण करने के लिए बफर ओवरफ़्लो का उपयोग कैसे किया जाता है?
- 10. क्या सी/सी ++ उपकरण बफर ओवरफ्लो के लिए जांच सकते हैं?
- 11. क्या Emacs में पूरे बफर का मूल्यांकन करना संभव है?
- 12. क्या सीपीयू में सी ++ के साथ ओवरफ्लो फ्लैग रजिस्टर तक पहुंच बनाना संभव है?
- 13. क्या यह कोड एक शोषण है? यह कोड क्या है?
- 14. शोषण लेखन पर कुछ उन्नत और आधुनिक संसाधन क्या हैं?
- 15. क्या जावा प्रोटोकॉल बफर संदेश का नकल करना संभव है?
- 16. बफर क्या है?
- 17. स्टोर बफर क्या है?
- 18. size_t जोड़ों में ओवरफ्लो
- 19. बफर ओवरफ़्लो
- 20. शोषण का प्रयास किया?
- 21. क्या सी # प्रोजेक्ट में सी कोड एम्बेड करना संभव है?
- 22. सी ++ में अंडरफ्लो/ओवरफ्लो की जांच कर रहा है?
- 23. विंडोज Azure जानवर शोषण
- 24. एक स्टैक आधारित बफर ओवरफ्लो हमले में संशोधित वापसी पता कैसे अनुमानित है?
- 25. सी सर्कुलर बफर दक्षता में सुधार
- 26. जावा में कोड इंजेक्शन संभव है?
- 27. सी # में मेटाप्रोग्रामिंग संभव है?
- 28. BufferedReader में बफर आकार क्या है?
- 29. क्या एचटीएमएल एन्कोडिंग एक्सएसएस सुरक्षा शोषण को रोकता है?
- 30. सी # ओवरफ्लो काम नहीं कर रहा है? ओवरफ्लो चेकिंग कैसे सक्षम करें?
शास्त्रीय अर्थ में बफर ओवरफ़्लो, या किसी भी प्रकार का बफर ओवरफ़्लो शोषण? – Dykam
'अनचेक' और 'असुरक्षित' कीवर्ड देखें। –
@ डिकम: एक शोषण के अर्थ में। – poke