Fast Bin Attack
Taarifa Msingi
Kwa maelezo zaidi kuhusu ni nini kibin cha haraka, tafadhali angalia ukurasa huu:
Bins & Memory AllocationsKwa kuwa kibin cha haraka ni orodha ya viungo vya pekee, kuna kinga chache sana kuliko kwenye mabakuli mengine na kubadilisha anwani katika kipande cha kibin cha haraka kilichofutwa ni ya kutosha kuweza kuweka kipande baadaye katika anwani yoyote ya kumbukumbu.
Kwa muhtasari:
Unaweza kupata mfano kamili katika namna iliyoelezwa vizuri sana katika msimbo kutoka https://guyinatuxedo.github.io/28-fastbin_attack/explanation_fastbinAttack/index.html:
Ikiwa niwezekana kubadilisha thamani ya kigezo cha kimataifa global_max_fast
na nambari kubwa, hii inaruhusu kuzalisha vipande vya fast bin vya ukubwa mkubwa, ikiruhusu kufanya mashambulizi ya fast bin katika hali ambapo hapakuwa na uwezekano hapo awali. Hali hii ni muhimu katika muktadha wa mashambulizi ya large bin na mashambulizi ya unsorted bin
Mifano
Inawezekana kutenga vipande, kuviachilia, kusoma maudhui yao na kuvijaza (kwa udhaifu wa kujaa).
Konsolidisha kipande kwa infoleak: Mbinu hii ni kimsingi kutumia udhaifu wa kujaa ili kuunda
prev_size
bandia ili kipande cha awali kiwekwe ndani ya kikubwa, hivyo wakati wa kutenga kikubwa kinachohusisha kipande kingine, inawezekana kuchapisha data yake na kuvuja anwani ya libc (main_arena+88
).Kubadilisha kitanzi cha malloc: Kwa hili, na kutumia hali ya kufunika ya awali, ilikuwa inawezekana kuwa na vipande 2 vilivyokuwa vikionyesha kwa kumbukumbu moja. Kwa hiyo, kuviviachilia vyote (kwa kuvifungua vipande vingine kati yake kuepuka ulinzi) ilikuwa inawezekana kuwa na kipande kimoja katika fast bin mara 2. Kisha, ilikuwa inawezekana kutenga tena, kubadilisha anwani ya kipande kinachofuata ili ielekee kidogo kabla ya
__malloc_hook
(hivyo inaelekeza kwa nambari ambayo malloc inafikiria ni ukubwa huru - kuepuka tena), kutenga tena na kisha kutenga kipande kingine ambacho kitapokea anwani za kitanzi cha malloc. Hatimaye gadgeti moja ilikuwa imeandikwa humo.Kuna kujaa kwa kumbukumbu na matumizi baada ya kuachilia na kuachilia mara mbili kwa sababu wakati kipande kinapoachiliwa inawezekana kutumia upya na kuachilia upya viashiria
Leak ya habari ya Libc: Tuachie vipande vichache na vitapata kiashiria kwa sehemu ya eneo la uwanja mkuu. Kwa kuwa unaweza kutumia upya viashiria vilivyoachiliwa, soma tu anwani hii.
Mashambulizi ya fast bin: Viashiria vyote kwa kutengwa hukusanywa ndani ya safu, hivyo tunaweza kuachilia vipande vichache vya fast bin na katika cha mwisho kubadilisha anwani ili ielekee kidogo kabla ya safu hii ya viashiria. Kisha, kutenga vipande vichache na ukubwa sawa na tutapata kwanza halali na kisha bandia inayohusisha safu ya viashiria. Sasa tunaweza kubadilisha viashiria hivi vya kutengwa ili kufanya anwani ya GOT ya
free
ielekeesystem
na kisha andika"/bin/sh"
kwenye kipande 1 kisha itefree(chunk1)
ambayo badala yake itatekelezasystem("/bin/sh")
.Mfano mwingine wa kutumia kujaa kwa kibayeti kimoja kufanya konsolidisha vipande katika unsorted bin na kupata infoleak ya libc na kisha kufanya mashambulizi ya fast bin kubadilisha kitanzi cha malloc na anwani ya gadgeti moja
Baada ya kuvuja kwa habari kutumia unsorted bin na UAF kuvuja anwani ya libc na anwani ya PIE, shambulio la CTF hili lilifanya mashambulizi ya fast bin kutenga kipande mahali ambapo viashiria kwa vipande vilivyodhibitiwa vilikuwa vimehifadhiwa hivyo ilikuwa inawezekana kubadilisha viashiria fulani ili kuandika gadgeti moja kwenye GOT
Unaweza kupata mashambulizi ya Fast Bin yaliyotumiwa kupitia mashambulizi ya unsorted bin:
Kumbuka kwamba kabla ya kufanya mashambulizi ya fast bin ni kawaida kutumia orodha za kufuta kuvuja anwani za libc/kumbukumbu (kwa haja).
Tunaweza kutenga vipande vya ukubwa zaidi ya
0x100
.Badilisha
global_max_fast
kwa kutumia mashambulizi ya Unsorted Bin (inafanya kazi 1/16 ya wakati kutokana na ASLR, kwa sababu tunahitaji kubadilisha biti 12, lakini lazima tubadilishe biti 16).Mashambulizi ya Fast Bin kubadilisha safu ya kimataifa ya vipande. Hii hutoa msingi wa kusoma/kubadilisha wa kiholela, ambao unaruhusu kubadilisha GOT na kuweka baadhi ya kazi ielekee
system
.
Last updated