Heap Overflow
Taarifa Msingi
Kujaa kwa heap ni kama kujaa kwa steki lakini kwenye heap. Kimsingi inamaanisha kuwa nafasi fulani ilireserviwa kwenye heap kuhifadhi data fulani na data iliyohifadhiwa ilikuwa kubwa kuliko nafasi iliyoreserviwa.
Kwenye kujaa kwa steki tunajua kwamba baadhi ya rejista kama kipima maelekezo au fremu ya steki itarejeshwa kutoka kwenye steki na inaweza kuwa inawezekana kuitumia hii. Kwenye kujaa kwa heap, hakuna habari nyeti iliyohifadhiwa kwa chaguo-msingi kwenye kipande cha heap kinachoweza kujaa. Hata hivyo, inaweza kuwa habari nyeti au viashiria, hivyo umuhimu wa udhaifu huu unategemea data gani inaweza kubadilishwa na jinsi mshambuliaji anaweza kutumia hii.
Ili kupata vishikizo vya kujaa unaweza kutumia mifano ile ile kama kwenye kujaa kwa steki.
Mfano wa ARM64
Kwenye ukurasa https://8ksec.io/arm64-reversing-and-exploitation-part-1-arm-instruction-set-simple-heap-overflow/ unaweza kupata mfano wa kujaa kwa heap ambapo amri itakayotekelezwa imehifadhiwa kwenye kipande kinachofuata kutoka kwenye kipande kilichojaa. Hivyo, inawezekana kubadilisha amri itakayotekelezwa kwa kuibadilisha na shambulio rahisi kama vile:
Last updated