mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-29 08:01:00 +00:00
4.7 KiB
4.7 KiB
Prekoračenje za jedan bajt
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili da preuzmete HackTricks u PDF formatu proverite PLANOVE ZA PRIJAVU!
- Nabavite zvanični PEASS & HackTricks suvenir
- Otkrijte Porodičnu PEASS, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitteru 🐦 @hacktricks_live.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Osnovne informacije
Imajući pristup prekoračenju za jedan bajt, napadaču se omogućava da modifikuje prethodne informacije o veličini metapodataka, omogućavajući manipulaciju sačuvanim chunk-ovima, konačno generišući chunk koji sadrži drugi legitimni chunk.
Primer koda:
- https://github.com/DhavalKapil/heap-exploitation/blob/d778318b6a14edad18b20421f5a06fa1a6e6920e/assets/files/shrinking_free_chunks.c
- Ovaj napad više ne funkcioniše zbog korišćenja Tcaches.
- Štaviše, ako pokušate da ga zloupotrebite koristeći veće chunk-ove (tako da Tcaches nisu uključeni), dobićete grešku:
malloc(): invalid next size (unsorted)
Cilj
- Postaviti chunk unutar drugog chunk-a tako da pisanje pristupa nad tim drugim chunk-om omogućava prepisivanje sadržaja sadržanog chunk-a
Zahtevi
- Prekoračenje za jedan bajt radi modifikacije prethodnih informacija o veličini metapodataka
Napad
- Rezervisana su 3 chunk-a memorije (a, b, c) jedan za drugim. Zatim se oslobađa srednji chunk. Prvi chunk sadrži ranjivost prekoračenja za jedan bajt i napadač je zloupotrebljava sa 0x00 (ako je prethodni bajt bio 0x10, činilo bi da srednji chunk pokazuje da je 0x10 manji nego što zaista jeste).
- Zatim, 2 manja chunk-a se alociraju u oslobađenom srednjem chunk-u (b), međutim, pošto
b + b->size
nikada ne ažurira chunk c jer je pokazana adresa manja nego što bi trebalo. - Zatim, b1 i c se oslobađaju. Pošto
c - c->prev_size
i dalje pokazuje na b (sada b1), oba se konsoliduju u jedan chunk. Međutim, b2 je i dalje unutar između b1 i c. - Na kraju, vrši se nova alokacija memorije koja preuzima ovu oblast memorije koja će zapravo sadržati b2, omogućavajući vlasniku nove alokacije da kontroliše sadržaj b2.
Ova slika savršeno objašnjava napad:
Reference
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili da preuzmete HackTricks u PDF formatu proverite PLANOVE ZA PRIJAVU!
- Nabavite zvanični PEASS & HackTricks suvenir
- Otkrijte Porodičnu PEASS, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitteru 🐦 @hacktricks_live.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.