# Kujazwa kwa kosa moja
Jifunze AWS hacking kutoka sifuri hadi shujaa nahtARTE (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 USAJILI**](https://github.com/sponsors/carlospolop)!
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
## Taarifa Msingi
Kwa kupata ufikiaji wa kujaza 1B, muhusika anaweza kubadilisha habari ya awali ya metadata ya ukubwa, kuruhusu kuharibu vipande ambavyo kimsingi vinaachiliwa, hatimaye kuzalisha kipande ambacho kina kipande kingine halali.
### Mfano wa Kanuni:
* [https://github.com/DhavalKapil/heap-exploitation/blob/d778318b6a14edad18b20421f5a06fa1a6e6920e/assets/files/shrinking\_free\_chunks.c](https://github.com/DhavalKapil/heap-exploitation/blob/d778318b6a14edad18b20421f5a06fa1a6e6920e/assets/files/shrinking\_free\_chunks.c)
* Udukuzi huu haufanyi kazi tena kutokana na matumizi ya Tcaches.
* Zaidi ya hayo, ukijaribu kuitumia kwa vipande vikubwa zaidi (hivyo tcaches hazihusiki), utapata kosa: `malloc(): ukubwa usiofaa ufuatao (usioorodheshwa)`
### Lengo
* Fanya kipande kiwe kimejumuishwa ndani ya kipande kingine ili upatikanaji wa kuandika juu ya kipande cha pili kuruhusu kubadilisha kile kilichomo.
### Mahitaji
* Kujaza kosa moja ili kubadilisha habari ya awali ya metadata ya ukubwa
### Udukuzi
* Vipande 3 vya kumbukumbu (a, b, c) vinahifadhiwa moja baada ya nyingine. Kisha cha kati kinachiliwa. Cha kwanza kina kosa la kujazwa kwa kosa moja na muhusika anaitumia na 0x00 (ikiwa byte iliyotangulia ilikuwa 0x10 itafanya kipande cha kati kiashiria kuwa ni kidogo kwa 0x10 kuliko ilivyo kweli).
* Kisha, vipande vidogo 2 zaidi vinatengwa katika kipande kilicholiwa cha kati (b), hata hivyo, kwani `b + b->ukubwa` haujawahi kusasishwa kipande c kwa sababu anwani inayoelekezwa ni ndogo kuliko inavyopaswa.
* Kisha, b1 na c vinachiliwa. Kwani `c - c->ukubwa_uliotangulia` bado inaelekeza kwa b (sasa b1), vyote viwili vinajumuishwa katika kipande kimoja. Hata hivyo, b2 bado iko ndani kati ya b1 na c.
* Hatimaye, malloc mpya inafanywa kurudisha eneo hili la kumbukumbu ambalo kimsingi litakuwa na b2, kuruhusu mmiliki wa malloc mpya kudhibiti maudhui ya b2.
Picha hii inaelezea kikamilifu udukuzi:
## Marejeo
* [https://heap-exploitation.dhavalkapil.com/attacks/shrinking\_free\_chunks](https://heap-exploitation.dhavalkapil.com/attacks/shrinking\_free\_chunks)
Jifunze AWS hacking kutoka sifuri hadi shujaa nahtARTE (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 USAJILI**](https://github.com/sponsors/carlospolop)!
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.