Print Stack Canary
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
एक ऐसी स्थिति की कल्पना करें जहाँ एक प्रोग्राम जो स्टैक ओवरफ्लो के लिए संवेदनशील है एक puts फ़ंक्शन को पॉइंट कर सकता है जो स्टैक ओवरफ्लो के भाग की ओर इशारा करता है। हमलावर जानता है कि कनारी का पहला बाइट एक नल बाइट है (\x00
) और बाकी कनारी यादृच्छिक बाइट्स हैं। फिर, हमलावर एक ओवरफ्लो बना सकता है जो स्टैक को ओवरराइट करता है जब तक कि केवल कनारी का पहला बाइट न रह जाए।
फिर, हमलावर पेलोड के मध्य में puts कार्यक्षमता को कॉल करता है जो सभी कनारी को प्रिंट करेगा (पहले नल बाइट को छोड़कर)।
इस जानकारी के साथ हमलावर कनारी को जानकर एक नया हमला तैयार और भेज सकता है (उसी प्रोग्राम सत्र में)।
स्पष्ट रूप से, यह रणनीति बहुत सीमित है क्योंकि हमलावर को अपनी पेलोड की सामग्री को प्रिंट करने में सक्षम होना चाहिए ताकि वह कनारी को एक्सफिल्ट्रेट कर सके और फिर एक नया पेलोड बना सके (उसी प्रोग्राम सत्र में) और वास्तविक बफर ओवरफ्लो भेज सके।
CTF उदाहरण:
64 बिट, ASLR सक्षम लेकिन कोई PIE नहीं, पहला कदम ओवरफ्लो को भरना है जब तक कि कनारी का बाइट 0x00 न हो जाए ताकि फिर puts को कॉल किया जा सके और इसे लीक किया जा सके। कनारी के साथ एक ROP गैजेट बनाया जाता है जो puts को कॉल करता है ताकि GOT से puts का पता लीक किया जा सके और फिर एक ROP गैजेट जो system('/bin/sh')
को कॉल करता है।
32 बिट, ARM, कोई relro नहीं, कनारी, nx, कोई pie नहीं। इसे लीक करने के लिए puts पर कॉल के साथ ओवरफ्लो। + ret2lib जो system
को एक ROP श्रृंखला के साथ कॉल करता है जो r0 (आर्ग /bin/sh
) और pc (system का पता) को पॉप करता है।
एक मनमाना पढ़ाई के साथ जैसे कि फॉर्मेट स्ट्रिंग्स द्वारा प्रदान किया गया, कनारी को लीक करना संभव हो सकता है। इस उदाहरण को देखें: https://ir0nstone.gitbook.io/notes/types/stack/canaries और आप पढ़ सकते हैं कि फॉर्मेट स्ट्रिंग्स का दुरुपयोग करके मनमाने मेमोरी पते को पढ़ने के लिए:
यह चुनौती बहुत सरल तरीके से एक फॉर्मेट स्ट्रिंग का दुरुपयोग करती है ताकि स्टैक से कनारी को पढ़ा जा सके।
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)