3.2 KiB

Pointer Redirecting

{{#include ../../banners/hacktricks-training.md}}

String pointers

यदि एक फ़ंक्शन कॉल एक स्ट्रिंग के पते का उपयोग करने जा रहा है जो स्टैक में स्थित है, तो बफ़र ओवरफ़्लो का दुरुपयोग करके इस पते को ओवरराइट करना और बाइनरी के अंदर एक अलग स्ट्रिंग का पता डालना संभव है।

यदि उदाहरण के लिए एक system फ़ंक्शन कॉल एक कमांड निष्पादित करने के लिए एक स्ट्रिंग के पते का उपयोग करने जा रहा है, तो एक हमलावर स्टैक में एक अलग स्ट्रिंग का पता रख सकता है, export PATH=.:$PATH और वर्तमान निर्देशिका में नई स्ट्रिंग के पहले अक्षर के नाम वाला एक स्क्रिप्ट बना सकता है क्योंकि इसे बाइनरी द्वारा निष्पादित किया जाएगा।

आप इसका एक उदाहरण यहाँ पा सकते हैं:

Function pointers

स्ट्रिंग पॉइंटर के समान लेकिन फ़ंक्शंस पर लागू, यदि स्टैक में एक फ़ंक्शन का पता है जिसे कॉल किया जाएगा, तो इसे बदलना संभव है (जैसे system को कॉल करना)।

आप इसका एक उदाहरण यहाँ पा सकते हैं:

References

{{#include ../../banners/hacktricks-training.md}}