Large Bin Attack
Last updated
Last updated
AWS Hacking'i öğrenin ve uygulayın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve uygulayın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
Bir büyük binin ne olduğu hakkında daha fazla bilgi için bu sayfaya bakın:
Bins & Memory Allocationshow2heap - büyük bin saldırısı sayfasında harika bir örnek bulunabilir.
Temelde burada, en son "güncel" glibc sürümünde (2.35), P->bk_nextsize
kontrol edilmediği için belirli koşullar sağlandığında büyük bir bin parçasının değeri ile bir adresin değiştirilebileceğini görebilirsiniz.
Bu örnekte aşağıdaki koşulları bulabilirsiniz:
Bir büyük parça tahsis edilir
İlk parçadan daha küçük ancak aynı dizindeki 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
Ardından, chunk 2'den daha büyük bir parça tahsis edilir, bu nedenle chunk2, adresi chunk1->bk_nextsize->fd_nextsize
'ı chunk2'nin adresi ile üzerine yazarak büyük bine eklenir
Diğer potansiyel senaryolar bulunmaktadır, önemli olan, büyük bine, bir mevcut X parçadan daha küçük bir parça eklemektir, bu nedenle binde X'ten hemen önce eklenmesi gerekmekte ve X'in bk_nextsize
'ını değiştirebilmemiz gerekmektedir çünkü daha küçük parçanın adresinin yazılacağı yer burasıdır.
Bu, malloc'tan ilgili kod parçalarıdır. Adresin nasıl üzerine yazıldığını daha iyi anlamak için yorumlar eklenmiştir:
Bu, daha büyük parçalarla hızlı bin 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 adresinde bulabilirsiniz.
Aynı durumda büyük bin saldırısı how2heap adresinde göründüğü gibi.
Yazma ilkesi daha karmaşıktır, çünkü burada global_max_fast
işe yaramaz.
Sömürüyü bitirmek için FSOP gereklidir.
AWS Hacking öğrenin ve pratik yapın:HackTricks Eğitimi AWS Red Team Expert (ARTE) GCP Hacking öğrenin ve pratik yapın: HackTricks Eğitimi GCP Red Team Expert (GRTE)