arrow_backफ़ील्ड नोट्स पर वापस जाएँ
WEB SECURITY प्रकाशित 9 Aug 2026

Buffer Overflow क्या है? एक व्यावहारिक walkthrough

जानें कि buffer overflows वास्तव में कैसे काम करते हैं एक वास्तविक C उदाहरण के साथ, एक stack diagram, और उपकरण जो आप स्वयं देख सकें।

एक buffer overflow तब होता है जब एक program एक fixed-size memory chunk में उससे अधिक डेटा लिखता है जितना वह hold कर सकता है। अतिरिक्त bytes आसन्न memory में फैल जाते हैं, और उस buffer के आगे जो कुछ बैठता है, उसके आधार पर आप variables को corrupt कर सकते हैं, program को crash कर सकते हैं, या execution flow को पूरी तरह से hijack कर सकते हैं। यह software security में सबसे पुरानी bug classes में से एक है और आज भी CTFs, CVEs, और embedded firmware में दिखाई देता है।

vulnerable pattern

यहां C में एक क्लासिक उदाहरण है:

#include <string.h>

void greet(char *name) {
    char buffer[64];
    strcpy(buffer, name);
}

int main(int argc, char **argv) {
    greet(argv[1]);
    return 0;
}

strcpy जो भी string आप pass करते हैं उसे buffer में copy करता है, कोई bounds checking नहीं। अगर argv[1] 64 bytes से बड़ा है, तो copy array के अंत से आगे जाता है। stack पर, buffer अन्य local variables, saved registers, और अंततः return address के नीचे बैठता है जो CPU को बताता है कि greet() खत्म होने के बाद कहां jump करना है। उस return address को एक address से overwrite करें जिसे आप नियंत्रित करते हैं, और आप नियंत्रित करते हैं कि आगे क्या चलता है।

यह अभी भी क्यों compile और run करता है

C और C++ raw arrays पर automatic bounds checking नहीं करते। strcpy, gets, sprintf, और strcat जैसे functions खुशी से buffer के अंत से आगे लिखेंगे क्योंकि वे केवल एक null terminator या source length की परवाह करते हैं, destination के actual size की नहीं। इसे strncpy या snprintf से compare करें, जो एक explicit size argument लेते हैं और वहीं रुकते हैं। vulnerability वास्तव में

AI सहायता से लिखा गया, माइकल पिल्च (CISSP), Korra Studio द्वारा समीक्षित और प्रकाशित।

आगे बढ़ने के लिए तैयार?

यह Korra Studio के ज्ञान आधार से एक नोट है — प्लेटफ़ॉर्म हर विषय को 1-टू-1 मेंटरिंग के साथ जोड़ता है।

मुफ़्त शुरू करेंarrow_forward