# Büyük Bin Saldırısı
htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin! HackTricks'i desteklemenin diğer yolları: - **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! - [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin - [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu - 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)'da **takip edin**. - **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
## Temel Bilgiler Büyük bir binin ne olduğu hakkında daha fazla bilgi için bu sayfaya bakın: {% content-ref url="bins-and-memory-allocations.md" %} [bins-and-memory-allocations.md](bins-and-memory-allocations.md) {% endcontent-ref %} Bir örnek bulmak mümkündür [**how2heap - büyük bin saldırısı**](https://github.com/shellphish/how2heap/blob/master/glibc\_2.35/large\_bin\_attack.c). Temelde burada, en son "güncel" glibc sürümünde (2.35), **`P->bk_nextsize`** kontrol edilmediği görülebilir, belirli koşullar sağlandığında büyük bir bin parçasının değeriyle bir adresin değiştirilebileceği. Bu örnekte aşağıdaki koşulları bulabilirsiniz: - Büyük bir parça tahsis edilir - İlk parçadan daha küçük ancak aynı dizindeki başka bir büyük parça tahsis edilir - Binde ilk sıraya gitmesi gerektiği için daha küçük olmalıdır - (Üst parçayla birleşmeyi önlemek için bir parça oluşturulur) - Ardından, ilk büyük parça serbest bırakılır ve ondan daha büyük yeni bir parça tahsis edilir -> Parça1 büyük bine gider - Ardından, ikinci büyük parça serbest bırakılır - Şimdi, zafiyet: Saldırgan, `chunk1->bk_nextsize`'ı `[hedef-0x20]` olarak değiştirebilir - Daha sonra, 2. parçadan daha büyük bir parça tahsis edilir, bu nedenle parça2, adresi `chunk1->bk_nextsize->fd_nextsize`'ı parça2'nin adresiyle üzerine yazarak büyük bine eklenir {% hint style="success" %} Diğer potansiyel senaryolar da vardır, önemli olan, büyük bir bine, bir mevcut X parçadan **daha küçük** bir parça eklemektir, bu nedenle bine sadece ondan önce eklenmesi gerekmektedir ve X'in **`bk_nextsize`**'ını değiştirebilmemiz gerekmektedir çünkü daha küçük parçanın adresinin yazılacağı yer burasıdır. {% endhint %} Bu, malloc'tan ilgili kod parçacığıdır. Adresin nasıl üzerine yazıldığını daha iyi anlamak için yorumlar eklenmiştir: {% code overflow="wrap" %} ```c /* if smaller than smallest, bypass loop below */ assert (chunk_main_arena (bck->bk)); if ((unsigned long) (size) < (unsigned long) chunksize_nomask (bck->bk)) { fwd = bck; // fwd = p1 bck = bck->bk; // bck = p1->bk victim->fd_nextsize = fwd->fd; // p2->fd_nextsize = p1->fd (Note that p1->fd is p1 as it's the only chunk) victim->bk_nextsize = fwd->fd->bk_nextsize; // p2->bk_nextsize = p1->fd->bk_nextsize fwd->fd->bk_nextsize = victim->bk_nextsize->fd_nextsize = victim; // p1->fd->bk_nextsize->fd_nextsize = p2 } ``` {% endcode %} Bu, daha büyük parçalarla hızlı bir kova saldırısını sömürmek için libc'in `global_max_fast` global değişkenini **üzerine yazmak** için kullanılabilir. Bu saldırının başka harika bir açıklamasını [**guyinatuxedo**](https://guyinatuxedo.github.io/32-largebin\_attack/largebin\_explanation0/index.html) adresinde bulabilirsiniz.
Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)! HackTricks'i desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** * **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.