7.8 KiB
Shambulio la Tcache Bin
Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!
Njia nyingine za kusaidia HackTricks:
- Ikiwa unataka kuona kampuni yako ikitangazwa kwenye HackTricks au kupakua HackTricks kwa PDF Angalia MIPANGO YA KUJIUNGA!
- Pata bidhaa rasmi za PEASS & HackTricks
- Gundua Familia ya PEASS, mkusanyiko wetu wa kipekee wa NFTs
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au tufuate kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Taarifa Msingi
Kwa habari zaidi kuhusu ni nini tcache bin angalia ukurasa huu:
{% content-ref url="bins-and-memory-allocations.md" %} bins-and-memory-allocations.md {% endcontent-ref %}
Kwanza kabisa, kumbuka kuwa Tcache iliingizwa katika toleo la glibc 2.26.
Shambulio la Tcache lililopendekezwa katika ukurasa wa guyinatuxido ni sawa sana na shambulio la fast bin ambapo lengo ni kubadilisha pointer kwenda kwa kipande kinachofuata kwenye bin ndani ya kipande kilichofutwa kwenda kwa anwani isiyojulikana ili baadaye iwezekane kuweka anwani hiyo maalum na labda kubadilisha pointes.
Hata hivyo, siku hizi, ukikimbia nambari iliyotajwa utapata kosa: malloc(): unaligned tcache chunk detected
. Kwa hivyo, ni muhimu kuandika anwani iliyolingana katika pointer mpya (au kutekeleza mara za kutosha nambari ili anwani iliyoandikwa iwe kweli iliyolingana).
Shambulio la vitambulisho vya Tcache
Kawaida inawezekana kupata mwanzoni mwa kipande cha heap kikichukua idadi ya vipande kwa kila kielelezo ndani ya tcache na anwani ya kielelezo cha kichwa cha kipande cha kila kielelezo cha tcache. Ikiwa kwa sababu fulani inawezekana kubadilisha habari hii, itakuwa inawezekana kuweka kichwa cha kipande cha kila kielelezo kuelekea kwa anwani inayotakiwa (kama kitanzi cha malloc) kisha baadaye kuweka kipande cha ukubwa wa kielelezo na kubadilisha maudhui ya kitanzi cha malloc katika kesi hii.
Mifano
- CTF https://guyinatuxedo.github.io/29-tcache/dcquals19_babyheap/index.html
- Uvuvi wa habari ya Libc: Inawezekana kujaza tcaches, kuongeza kipande kwenye orodha isiyopangwa, kufuta tcache na kuweka upya kipande kutoka kwenye bin isiyopangwa ikibadilisha tu 8B za kwanza, ikiiacha anwani ya pili ya libc kutoka kwa kipande ikiwa bado tunaweza kuisoma.
- Shambulio la Tcache: Programu ina mapungufu ya 1B ya kumwaga kwa kipande cha heap. Hii itatumika kubadilisha kichwa cha ukubwa cha kipande kilichopewa kufanya iwe kubwa zaidi. Kisha, kipande hiki kitafutwa, kikiwekwa kwenye tcache ya vipande vya ukubwa wa bandia. Kisha, tutapata kipande na ukubwa wa bandia, na kipande kilichopita kitajulikana kuwa kidogo kuliko ilivyotarajiwa na hii itatoa fursa ya kubadilisha kipande kinachofuata kwenye kumbukumbu.
Tutatumia hii kubadilisha kitanzi cha FD cha kipande kinachofuata kuelekeamalloc_hook
, kisha niwezekane kutenga viashiria 2: kwanza kiashiria halali tulichobadilisha, na kisha alokesheni ya pili itarudisha kipande kwamalloc_hook
ambayo inawezekana kutumia kubadilisha gadget moja. - CTF https://guyinatuxedo.github.io/29-tcache/plaid19_cpp/index.html
- Uvuvi wa habari ya Libc: Kuna matumizi baada ya kufuta na kufuta mara mbili. Katika mwongozo huu mwandishi alivuja anwani ya libc kwa kusoma anwani ya kipande kilichowekwa kwenye bin ndogo (kama kuvuja kutoka kwa bin isiyopangwa lakini kutoka kwa ile ndogo).
- Shambulio la Tcache: Tcache inafanywa kupitia kufuta mara mbili. Kipande kimoja kinafutwa mara mbili, kwa hivyo ndani ya Tcache kipande kitaelekeza kwake yenyewe. Kisha, kinalokeshwa, kitanzi chake cha FD kinabadilishwa kuelekea kitanzi cha kufuta na kisha kinalokeshwa tena ili kipande kinachofuata kwenye orodha iwe kwenye kitanzi cha kufuta. Kisha, hii pia inalokeshwa na inawezekana kuandika anwani ya
system
hapa ili wakati malloc inayohusisha"/bin/sh"
inapofutwa tupate kifaa. - CTF https://guyinatuxedo.github.io/44-more_tcache/csaw19_popping_caps0/index.html
- Udhaifu kuu hapa ni uwezo wa
kufuta
anwani yoyote kwenye heap kwa kuonyesha mbali yake - Shambulio la vitambulisho vya Tcache: Inawezekana kutenga na kufuta kipande cha ukubwa ambao unapohifadhiwa ndani ya kipande cha tcache (kipande chenye habari ya mabano ya tcache) itazalisha anwani yenye thamani ya 0x100. Hii ni kwa sababu tcache inahifadhi idadi ya vipande kwa kila bin katika herufi tofauti, kwa hivyo kipande kimoja katika kielelezo maalum kinazalisha thamani ya 0x100.
- Kisha, thamani hii inaonekana kama kuna kipande cha ukubwa wa 0x100. Kuruhusu kutumia kwa kufuta anwani hii. Hii itaongeza anwani hiyo kwenye kielelezo cha vipande vya ukubwa wa 0x100 katika tcache.
- Kisha, kutenga kipande cha ukubwa wa 0x100, anwani ya awali itarudishwa kama kipande, kuruhusu kubadilisha vitambulisho vingine vya tcache.
Kwa mfano kuweka anwani ya kitanzi cha malloc katika moja yao na kutenga kipande cha ukubwa wa kielelezo hicho kutatoa kipande katika kitanzi cha calloc, ambacho kinaruhusu kuandika kifaa kimoja kupata ganda la s. - CTF https://guyinatuxedo.github.io/44-more_tcache/csaw19_popping_caps1/index.html
- Udhaifu sawa na hapo awali na kizuizi kimoja zaidi
- Shambulio la vitambulisho vya Tcache: Shambulio sawa na lile lililopita lakini kwa kutumia hatua chache kwa kufuta kipande kinachojumuisha habari ya tcache ili anwani yake iongezwe kwenye kielelezo cha tcache cha ukubwa wake ili iwezekane kutenga ukubwa huo na kupata habari ya kipande cha tcache kama kipande, ambacho kuruhusu kuongeza kitanzi cha kufuta kama anwani ya kielelezo kimoja, kuitenga, na kuandika kifaa kimoja juu yake.
Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!
Njia nyingine za kusaidia HackTricks:
- Ikiwa unataka kuona kampuni yako ikitangazwa kwenye HackTricks au kupakua HackTricks kwa PDF Angalia MIPANGO YA KUJIUNGA!
- Pata bidhaa rasmi za PEASS & HackTricks
- Gundua Familia ya PEASS, mkusanyiko wetu wa kipekee wa NFTs
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au tufuate kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.