निष्पादित करने के लिए।बफर अतिप्रवाह का उपयोग करते हुए मैं कंप्यूटर सुरक्षा हाल ही में सीखने किया गया है और एक जोड़ी समस्याओं के पार चलो, और मैं विशेष रूप से इस एक के साथ कुछ समस्या हो रही है खोल कोड
मुझे एक निश्चित बफर के साथ एक फ़ंक्शन दिया गया है जिसे फ़ाइल शेलकोड में शेलकोड निष्पादित करने के लिए मुझे ओवरफ़्लो करने की आवश्यकता है। आदेश का पता लगाने और उसे निष्पादित क्या shellcode फ़ाइल में है करने के लिए,,
void vuln(char *str) {
char buf[64];
strcpy(buf, str);
//function provided to display stack on command prompt
dump_stack((void **) buf, 21, (void **) &str);
}
मेरे प्रारंभिक अनुमान वापसी पता संशोधित करने के लिए था EIP समारोह की, लेकिन मैं महसूस किया कि मैं है नहीं: समारोह काफी सरल है फ़ाइल में पता मैं एक हेक्साडेसिमल मान में प्रतिनिधित्व कर सकते हैं। मैं कर रहा हूँ यकीन है कि मैं वापसी पता हेरफेर करने के लिए की जरूरत है, इसलिए वर्तमान में क्या मैं फोन कर रहा हूँ है:
//the string is passed as a command line arg
./buffer_overflow_shellcode $(python -c "print 'A'*72 + '\x41\xd6\xff\xff' ")
मेरी उत्पादन होता है:
Stack dump:
0xffffd600: 0xffffd7fd (first argument)
0xffffd5fc: 0x08048653 (saved eip)
0xffffd5f8: 0xffffd641 (saved ebp)
0xffffd5f4: 0x41414141
0xffffd5f0: 0x41414141
0xffffd5ec: 0x41414141
0xffffd5e8: 0x41414141
0xffffd5e4: 0x41414141
0xffffd5e0: 0x41414141
0xffffd5dc: 0x41414141
0xffffd5d8: 0x41414141
0xffffd5d4: 0x41414141
0xffffd5d0: 0x41414141
0xffffd5cc: 0x41414141
0xffffd5c8: 0x41414141
0xffffd5c4: 0x41414141
0xffffd5c0: 0x41414141
0xffffd5bc: 0x41414141
0xffffd5b8: 0x41414141
0xffffd5b4: 0x41414141
0xffffd5b0: 0x41414141 (beginning of buffer)
Segmentation fault
अजगर स्क्रिप्ट बस प्रिंट 72 पत्र एक के लिए , ईडीपी और EIP की बात करने के बफर अतिप्रवाह के बाद मैं अतिरिक्त पते के साथ ईडीपी के पते बदल सकते हैं और, यह हेरफेर करने के लिए तैयार वापसी पता पर पहुंचें। किसी भी मदद की वास्तव में सराहना की है, धन्यवाद!
क्या आपने कोड को '-really-no-protection' और '-मेक-मी-कमजोर-टू-सब कुछ' झंडे के साथ संकलित किया है? आजकल उस शोषण के लिए जरूरी है। –
@ डैनियल फिशर हां, मैंने पिछले कंप्यूटर सुरक्षा कार्यक्रमों को सही तरीके से संकलित किया है और बिना किसी समस्या के उन्हें बहने में सक्षम हैं। मुझे पता है कि मेरा प्रोग्राम इरादे –
के रूप में चल रहा है ठीक है, बस स्पष्ट संदिग्ध की जांच कर रहा है। –