Overwriting a freed chunk

unga mkono HackTricks

Baadhi ya mbinu zilizopendekezwa za kutumia kipande cha heap zinahitaji uwezo wa kubadilisha pointers ndani ya vipande vilivyofutwa. Lengo la ukurasa huu ni kufupisha mapungufu yanayoweza kutoa ufikiaji huu:

Matumizi Rahisi Baada ya Kufutwa

Ikiwa ni rahisi kwa muhusika kuandika habari katika kipande kilichofutwa, wanaweza kutumia hii kubadilisha pointers zinazohitajika.

Kufuta Mara Mbili

Ikiwa muhusika anaweza kufuta mara mbili kipande kimoja (kufuta vipande vingine kati yake kwa uwezekano) na kufanya iwe mara 2 katika bakuli moja, itawezekana kwa mtumiaji kuweka upya kipande baadaye, kuandika pointers zinazohitajika na kisha kuweka upya kuzindua vitendo vya kipande kikizinduliwa (k.m. shambulio la bakuli la haraka, shambulio la tcache...)

Kujaa kwa Kipande cha Heap

Inaweza kuwa iwezekanavyo kufanya kujaa kwa kipande kilichotengwa kikiwa na kipande kilichofutwa na kubadilisha vichwa/viashiria fulani vyake.

Kujaa kwa Kimo cha Moja

Katika kesi hii ingewezekana kubadilisha ukubwa wa kipande kinachofuata kumbukumbuni. Muhusika anaweza kutumia hii kufanya kipande kilichotengwa kiwe na ukubwa mkubwa, kisha kifute, kufanya kipande kiwe kimeongezwa kwenye bakuli la ukubwa tofauti (mkubwa), kisha kutenga ukubwa bandia, na shambulio litakuwa na ufikiaji wa kipande chenye ukubwa ambao ni mkubwa kuliko ilivyo kweli, hivyo kutoa hali ya vipande vinavyolingana, ambayo inaweza kutumiwa kwa njia ile ile kama kujaa kwa kipande cha heap (angalia sehemu iliyotangulia).

unga mkono HackTricks

Last updated