hacktricks/reversing-and-exploiting/linux-exploiting-basic-esp/common-binary-protections-and-bypasses/stack-canaries/print-stack-canary.md

52 lines
7.3 KiB
Markdown

# प्रिंट स्टैक कैनरी
<details>
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप अपनी कंपनी का विज्ञापन **HackTricks** में देखना चाहते हैं या **HackTricks को PDF में डाउनलोड** करना चाहते हैं तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** पर **फॉलो** करें 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
## मुद्रित स्टैक को बढ़ाएं
एक **प्रोग्राम** जो **स्टैक ओवरफ्लो** के लिए **वंशित** है किसी **स्थान** पर **स्टैक ओवरफ्लो** का **पुट्स** फ़ंक्शन को **निर्देशित** कर सकता है। हमलावर जानता है कि **कैनरी का पहला बाइट एक शून्य बाइट** (`\x00`) है और कैनरी के बाकी भाग **रैंडम** बाइट्स हैं। फिर, हमलावर एक ओवरफ्लो बना सकता है जो **केवल कैनरी के पहले बाइट तक स्टैक को अधिक करता है**
फिर, हमलावर **पेलोड के बीच में पुट्स फ़ंक्शन** को **कॉल करता है** जो सभी कैनरी को **मुद्रित करेगा** (शुरुआती शून्य बाइट को छोड़कर)।
इस जानकारी के साथ हमलावर एक नया हमला **तैयार कर सकता है और भेज सकता है** कैनरी को जानते हुए (उसी प्रोग्राम सत्र में)।
स्पष्ट है कि यह युक्ति बहुत **प्रतिबंधित** है क्योंकि हमलावर को अपने **पेलोड** की **सामग्री** को **प्रिंट** करने की आवश्यकता है ताकि **कैनरी को बाहर निकाल** सके और फिर एक नया पेलोड (उसी **प्रोग्राम सत्र** में) बना सके और **वास्तविक बफर ओवरफ्लो** को **भेज** सके।
**CTF उदाहरण:**&#x20;
* [**https://guyinatuxedo.github.io/08-bof\_dynamic/csawquals17\_svc/index.html**](https://guyinatuxedo.github.io/08-bof\_dynamic/csawquals17\_svc/index.html)
* 64 बिट, ASLR सक्षम है लेकिन PIE नहीं, पहला कदम है कैनरी के 0x00 बाइट तक एक ओवरफ्लो भरना और फिर पुट्स को कॉल करके इसे लीक करना। कैनरी के साथ एक ROP गैजेट बनाया जाता है जो पुट्स को कॉल करने के लिए GOT से पुट्स का पता लगाने और एक ROP गैजेट को कॉल करने के लिए `system('/bin/sh')` करने के लिए।
## अर्बिट्रेरी रीड
एक ऐसे अर्बिट्रेरी रीड के साथ जैसे कि फॉर्मेट **स्ट्रिंग्स** द्वारा प्रदान किया गया हो, कैनरी को लीक करना संभव हो सकता है। इस उदाहरण की जांच करें: [**https://ir0nstone.gitbook.io/notes/types/stack/canaries**](https://ir0nstone.gitbook.io/notes/types/stack/canaries) और आप यहां पढ़ सकते हैं कि कैसे फॉर्मेट स्ट्रिंग्स का दुरुपयोग करके अर्बिट्रेरी मेमोरी पतों को पढ़ने के बारे में:
{% content-ref url="../../format-strings/" %}
[format-strings](../../format-strings/)
{% endcontent-ref %}
<details>
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप अपनी कंपनी का विज्ञापन **HackTricks** में देखना चाहते हैं या **HackTricks को PDF में डाउनलोड** करना चाहते हैं तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** पर **फॉलो** करें 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>