hacktricks/binary-exploitation/heap/off-by-one-overflow.md

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:

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:

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:

https://heap-exploitation.dhavalkapil.com/attacks/shrinking_free_chunks

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u: