House of Einherjar

Support HackTricks

Taarifa Msingi

Kanuni

Lengo

  • Lengo ni kutenga kumbukumbu karibu na anwani yoyote maalum.

Mahitaji

  • Unda kikundi bandia tunapotaka kutenga kikundi:

  • Weka pointers kuelekeza kwenye yenyewe ili kuepuka ukaguzi wa usalama

  • Mwaga kwa kibali cha byte moja na byte tupu kutoka kikundi kimoja kwenda kingine kurekebisha bendera ya PREV_INUSE.

  • Eleza katika prev_size ya kikundi kilichotumiwa vibaya na byte tupu tofauti kati yake na kikundi bandia

  • Ukubwa wa kikundi bandia lazima pia uwe umewekwa ukubwa sawa kuepuka ukaguzi wa usalama

  • Kwa kujenga vikundi hivi, utahitaji uvujaji wa kumbukumbu ya heap.

Shambulio

  • Kikundi bandia A kinachotengenezwa ndani ya kikundi kinachodhibitiwa na mvamizi kikionyesha na fd na bk kwenye kikundi cha asili kuepuka ulinzi

  • Vikundi vingine 2 (B na C) vinatengwa

  • Kwa kutumia mbali moja katika B moja, biti ya prev in use inasafishwa na data ya prev_size inabadilishwa na tofauti kati ya mahali ambapo kikundi cha C kinatengwa, na kikundi bandia cha A kilichozalishwa awali

  • Hii prev_size na ukubwa katika kikundi bandia A lazima iwe sawa kuepuka ukaguzi.

  • Kisha, tcache inajazwa

  • Kisha, C inaachiliwa ili iungane na kikundi bandia A

  • Kisha, kikundi kipya D kinatengenezwa ambacho kitakuwa kuanzia kwenye kikundi cha bandia cha A na kufunika kikundi cha B

  • Nyumba ya Einherjar inamalizika hapa

  • Hii inaweza kuendelea na shambulio la taka la haraka au sumu ya Tcache:

  • Fungua B kuiongeza kwenye taka la haraka / Tcache

  • fd ya B inabadilishwa ikifanya ielekee kwenye anwani ya lengo ikitumia kikundi cha D (kwani ina B ndani)

  • Kisha, malloc 2 zinafanywa na ya pili itakuwa kutenga anwani ya lengo

Marejeo na mifano mingine

Support HackTricks

Last updated