Stack Buffer Overflows
stack layout समझिए, EIP/RIP overflow कीजिए और असुरक्षित C binary के लिए working exploit लिखिए।
Stack Buffer Overflows, CoddyKit पर Cyber Security Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Cyber Security Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Cyber Security Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
बफ़र अतिप्रवाह क्या है
जब किसी बफ़र अतिप्रवाह में उसमें समा सकने वाले डेटा से अधिक डेटा लिखा जाता है, तब वह घटित होता है। अतिरिक्त डेटा आस-पास की स्मृति को अधिलेखित कर देता है, जिससे नियंत्रण संरचनाएँ दूषित हो सकती हैं और प्रोग्राम का निष्पादन दूसरी दिशा में जा सकता है।
स्टैक स्मृति विन्यास
कॉल स्टैक में ये चीज़ें होती हैं: स्थानीय चर (बफ़र), सहेजा गया फ़्रेम पॉइंटर (SFP) और वापसी पता (RIP/EIP)—फ़ंक्शन के वापस आने के बाद निष्पादन जहाँ जारी रहता है। किसी स्थानीय बफ़र का अतिप्रवाह वापसी पते को अधिलेखित कर सकता है।
स्टैक को अधिलेखित करने का पारंपरिक तरीका
यदि कोई प्रोग्राम लंबाई की जाँच किए बिना gets() या strcpy() को कॉल करता है, तो हमलावर बफ़र भरने के लिए पर्याप्त बाइट इनपुट कर सकता है और वापसी पते को शेलकोड या किसी उपयोगी गैजेट के पते से अधिलेखित कर सकता है।
// Vulnerable C code:
void vuln() {
char buf[64];
gets(buf); // No bounds checking!
}ऑफ़सेट ज्ञात करना
पैटर्न बनाकर यह निर्धारित करें कि वापसी पते तक पहुँचने के लिए कितने बाइट आवश्यक हैं:
# Generate a cyclic pattern:
python3 -c "from pwn import *; print(cyclic(200))" | ./vuln
# After crash, find offset:
python3 -c "from pwn import *; print(cyclic_find(0x61616166))"सुरक्षाएँ: स्टैक कैनरी
स्टैक कैनरी एक यादृच्छिक मान है जिसे स्थानीय चरों और सहेजे गए वापसी पते के बीच रखा जाता है। वापस लौटने से पहले कैनरी की जाँच की जाती है—यदि इसे अधिलेखित कर दिया गया हो, तो प्रोग्राम समाप्त हो जाता है। पारंपरिक अतिप्रवाह शोषण के लिए इसे दरकिनार करना आवश्यक है।
सुरक्षा उपाय: ASLR
पता स्थान विन्यास का यादृच्छिकीकरण (ASLR) हर निष्पादन पर स्टैक, हीप और लाइब्रेरी के आधार पतों को यादृच्छिक बनाता है। वर्तमान पते के रिसाव के बिना, 64-बिट प्रणालियों पर कहाँ छलाँग लगानी है इसका अनुमान लगाना असंभव-सा होता है।
सुरक्षा उपाय: NX/DEP
NX (निष्पादन-निषेध) / DEP (डेटा निष्पादन रोकथाम) स्टैक को गैर-निष्पादन योग्य चिह्नित करता है। बफ़र में डाला गया शेलकोड सीधे निष्पादित नहीं किया जा सकता। इससे हमलावरों को रिटर्न-ओरिएंटेड प्रोग्रामिंग (ROP) का उपयोग करना पड़ता है।
पतों का रिसाव
ASLR को निष्प्रभावी करने के लिए हमलावरों को जानकारी का रिसाव चाहिए: फ़ॉर्मैट स्ट्रिंग की कमजोरियाँ, हीप से सीमा से अधिक पठन (जैसे हार्टब्लीड), या शोषित फ़ंक्शन में पढ़ने योग्य पॉइंटर। एक लीक हुआ पता ऑफ़सेट प्रकट करता है और अन्य पतों की गणना करने देता है।
बुनियादी एक्सप्लॉइट लिखना
बिना किसी सुरक्षा उपाय के बुनियादी 32-बिट स्टैक ओवरफ़्लो:
# Python exploit skeleton (pwntools):
from pwn import *
p = process("./vuln")
offset = 76
shellcode = asm(shellcraft.sh())
payload = shellcode + b"A" * (offset - len(shellcode)) + p32(stack_addr)
p.sendline(payload)
p.interactive()रेट2लिबसी तकनीक
रेट2लिबसी शेलकोड के बजाय libc के फ़ंक्शन (जैसे system()) में लौटकर NX को दरकिनार करता है। हमलावर रिटर्न पते को system के पते से अधिलेखित करता है और तर्क के रूप में "/bin/sh" भेजता है।
एक्सप्लॉइट विकास के उपकरण
आवश्यक उपकरण:
- प्वनटूल्स — पायथन एक्सप्लॉइट लाइब्रेरी
- GDB + प्वन्डबग/पेडा — एक्सप्लॉइट सहायक सुविधाओं वाला डीबगर
- चेकसेक — बाइनरी सुरक्षा उपाय दिखाता है
- आरओपीगैजेट / रॉपर — ROP शृंखलाएँ खोजते हैं
checksec --file=./vulnत्वरित जाँच: स्टैक ओवरफ़्लो
कौन-सा शमन उपाय स्थानीय चरों और सुरक्षित रखे गए रिटर्न पते के बीच एक यादृच्छिक मान रखता है और उसके अधिलेखित होने पर प्रोग्राम समाप्त कर देता है?
पाठ का पुनरावलोकन
स्टैक बफ़र ओवरफ़्लो किसी बफ़र को उसकी सीमा से आगे भरकर रिटर्न पते को अधिलेखित करते हैं। सुरक्षा उपायों में स्टैक कैनरी (अधिलेखन का पता लगाना), ASLR (पतों को यादृच्छिक बनाना) और NX/DEP (गैर-निष्पादन योग्य स्टैक) शामिल हैं। रेट2लिबसी NX को दरकिनार करता है। जानकारी के रिसाव ASLR को निष्प्रभावी करते हैं। प्वनटूल्स एक्सप्लॉइट विकास को सरल बनाता है।
एआई शिक्षक के साथ Cyber Security Academy सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 76
- पाठ
- 303
अक्सर पूछे जाने वाले प्रश्न
क्या “Stack Buffer Overflows” पाठ निःशुल्क है?
हाँ — Cyber Security Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Stack Buffer Overflows” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Cyber Security Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Stack Buffer Overflows” में मैं क्या सीखूँगा?
stack layout समझिए, EIP/RIP overflow कीजिए और असुरक्षित C binary के लिए working exploit लिखिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Cyber Security Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Cyber Security Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Cyber Security Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“Stack Buffer Overflows” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Cyber Security Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Cyber Security Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Stack Buffer Overflows
- Return-Oriented Programming (ROP)
- Format String Vulnerabilities
- Heap Exploitation: Use-After-Free और Heap Spraying