hacktricks/binary-exploitation/heap/heap-functions-security-checks.md

92 lines
5.8 KiB
Markdown

# Provere bezbednosti funkcija Heap
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks suvenir**](https://peass.creator-spring.com)
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>
## unlink
Ova funkcija uklanja deo iz dvostruko povezane liste. Uobičajene provere osiguravaju da struktura povezane liste ostane dosledna prilikom uklanjanja delova.
* **Provere doslednosti**:
* Provera da li je `P->fd->bk == P` i `P->bk->fd == P`.
* Poruka o grešci: `corrupted double-linked list`
## \_int\_malloc
Ova funkcija je odgovorna za dodeljivanje memorije iz hipa. Provere ovde osiguravaju da memorija nije oštećena tokom dodeljivanja.
* **Provera Veličine Fastbin-a**:
* Prilikom uklanjanja dela iz fastbin-a, osigurajte da je veličina dela unutar opsega fastbin-a.
* Poruka o grešci: `malloc(): memory corruption (fast)`
* **Provera Doslednosti Smallbin-a**:
* Prilikom uklanjanja dela iz smallbin-a, osigurajte da su prethodna i sledeća veza u dvostruko povezanoj listi dosledne.
* Poruka o grešci: `malloc(): smallbin double linked list corrupted`
* **Provera Opsega Memorije Unsorted Bin-a**:
* Osigurajte da je veličina delova u unsorted bin-u unutar minimalnih i maksimalnih granica.
* Poruka o grešci: `malloc(): memory corruption | malloc(): invalid next size (unsorted)`
* **Provera Doslednosti Unsorted Bin-a (Prvi Scenario)**:
* Prilikom umetanja preostalog dela u unsorted bin, proverite da li je `unsorted_chunks(av)->fd->bk == unsorted_chunks(av)`.
* Poruka o grešci: `malloc(): corrupted unsorted chunks`
* **Provera Doslednosti Unsorted Bin-a (Drugi Scenario)**:
* Ista provera kao prethodna, ali aktivira se prilikom umetanja nakon deljenja brzog ili malog dela.
* Poruka o grešci: `malloc(): corrupted unsorted chunks 2`
## \_int\_free
Ova funkcija oslobađa prethodno dodeljenu memoriju. Provere ovde pomažu u osiguravanju pravilnog oslobađanja memorije i sprečavanju oštećenja memorije.
* **Provera Granica Pokazivača**:
* Osigurajte da pokazivač koji se oslobađa ne obuhvata memoriju.
* Poruka o grešci: `free(): invalid pointer`
* **Provera Veličine**:
* Osigurajte da je veličina dela koje se oslobađa barem `MINSIZE` ili višekratnik `MALLOC_ALIGNMENT`.
* Poruka o grešci: `free(): invalid size`
* **Provera Veličine Fastbin-a**:
* Za fastbin delove, osigurajte da je veličina sledećeg dela unutar minimalnih i maksimalnih granica.
* Poruka o grešci: `free(): invalid next size (fast)`
* **Provera Dvostrukog Oslobađanja Fastbin-a**:
* Prilikom umetanja dela u fastbin, osigurajte da deo na početku nije isti kao deo koji se umeće.
* Poruka o grešci: `double free or corruption (fasttop)`
* **Provera Doslednosti Fastbin-a**:
* Prilikom umetanja u fastbin, osigurajte da su veličine glavnog dela i dela koji se umeće iste.
* Poruka o grešci: `invalid fastbin entry (free)`
* **Provera Doslednosti Top Chunk-a**:
* Za delove koji nisu fastbin, osigurajte da deo nije isti kao top chunk.
* Poruka o grešci: `double free or corruption (top)`
* **Provera Granica Memorije**:
* Osigurajte da je sledeći deo po memoriji unutar granica arene.
* Poruka o grešci: `double free or corruption (out)`
* **Provera Bita Prev\_inuse**:
* Osigurajte da je bit prethodno u upotrebi u sledećem delu označen.
* Poruka o grešci: `double free or corruption (!prev)`
* **Provera Normalne Veličine**:
* Osigurajte da je veličina sledećeg dela unutar validnih opsega.
* Poruka o grešci: `free(): invalid next size (normal)`
* **Provera Doslednosti Unsorted Bin-a**:
* Prilikom umetanja spojenog dela u unsorted bin, proverite da li je `unsorted_chunks(av)->fd->bk == unsorted_chunks(av)`.
* Poruka o grešci: `free(): corrupted unsorted chunks`
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks suvenir**](https://peass.creator-spring.com)
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>