mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-29 16:10:54 +00:00
4.2 KiB
4.2 KiB
Dizi İndeksleme
{% hint style="success" %}
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)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- 💬 Discord grubuna katılın veya telegram grubuna katılın veya bizi Twitter 🐦 @hacktricks_live** takip edin.**
- Hacking püf noktalarını paylaşarak PR'ler göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.
Temel Bilgiler
Bu kategori, dizilerdeki indekslerin işlenmesindeki hatalar nedeniyle belirli verilerin üzerine yazılabilmesine olanak tanıyan tüm zayıflıkları içerir. Saldırı mekanizması tamamen zayıflığın koşullarına bağlı olduğundan belirli bir metodolojiye sahip değildir.
Ancak burada bazı güzel örnekler bulabilirsiniz:
- https://guyinatuxedo.github.io/11-index/swampctf19_dreamheaps/index.html
- 2 çakışan dizi bulunmaktadır, biri verilerin depolandığı adresler için diğeri ise o verilerin boyutları için. Birinden diğerini üzerine yazmak mümkündür, bu da rastgele bir adresi boyut olarak belirlemeyi sağlar. Bu, GOT tablosundaki
free
fonksiyonunun adresini yazmayı ve ardından onusystem
adresiyle üzerine yazmayı ve hafızadan/bin/sh
ile free'yi çağırmayı mümkün kılar. - https://guyinatuxedo.github.io/11-index/csaw18_doubletrouble/index.html
- 64 bit, nx yok. Bir boyutu üzerine yazarak her şeyin çift sayı olarak kullanılacağı ve en küçükten en büyüğe doğru sıralanacağı bir tür tampon taşmasını geçmek için gereken bir kabuk kodu oluşturulması gerekmektedir, bu gereksinimi karşılayan bir adresle RIP'nin üzerine yazılması gerekmektedir ve en büyük adresin, yığının başlangıcına işaret eden yeni bir adresle değiştirilmesi gerekmektedir (program tarafından sızdırılan). Son olarak, sızdırılan adresi kullanarak GOT'ta put adresini sızdırmak için bir ROP zinciri kullanılır (
exit
çağrılacak ve bu nedenle bu zincir yığında çalıştırılacaktır). Son olarak, ret2lib'i çalıştıran yeni bir ROP zinciri kullanılır. - https://faraz.faith/2019-10-20-secconctf-2019-sum/
- 64 bit, relro yok, canary yok, nx yok, pie yok. Yığında bir dizide bir tane fazla olan bir hata vardır ve bu, bir işaretçiyi kontrol etmeyi sağlar ve yığın, dizideki fazla olan bir hata tarafından üzerine yazılan adresin tüm sayıların toplamını yazdığı bir adresi kontrol eder. Yığın kontrol edilir, bu nedenle GOT
exit
adresipop rdi; ret
ile üzerine yazılır ve yığındamain
adresi eklenir (main
'e geri dönülür). GOT'ta put adresini sızdırmak için puts kullanılarak bir ROP zinciri kullanılır (exit
çağrılacak ve bu nedenle bu zincir yığında çalıştırılacaktır). Son olarak, ret2lib'i çalıştıran yeni bir ROP zinciri kullanılır. - https://guyinatuxedo.github.io/14-ret_2_system/tu_guestbook/index.html
- 32 bit, relro yok, canary yok, nx yok, pie yok. Bir kötü indeksleme kullanarak libc ve yığın adreslerini sızdırmak için kötüye kullanma yapılır. Tampon taşmasını kötüye kullanarak
system('/bin/sh')
çağıran bir ret2lib yapısı oluşturulur (bir kontrolü atlamak için yığın adresine ihtiyaç duyulur).