Dizi İndeksleme
Reading time: 3 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Temel Bilgiler
Bu kategori, dizilerdeki indekslerin işlenmesindeki hatalar nedeniyle belirli verilerin üzerine yazmanın mümkün olduğu tüm zayıflıkları içerir. Sömürü mekanizması tamamen zayıflığın koşullarına bağlı olduğundan, belirli bir metodoloji olmayan çok geniş bir kategoridir.
Ancak burada bazı güzel örnekler bulabilirsiniz:
- https://guyinatuxedo.github.io/11-index/swampctf19_dreamheaps/index.html
- Adresler için bir dizi ve o verilerin boyutları için bir dizi olmak üzere 2 çarpışan dizi vardır. Birinden diğerine yazmak mümkündür, bu da boyut olarak gösterilen keyfi bir adres yazmayı sağlar. Bu, GOT tablosundaki
free
fonksiyonunun adresini yazmayı ve ardından bunusystem
adresi ile değiştirmeyi ve/bin/sh
ile bir bellekten free çağırmayı mümkün kılar. - https://guyinatuxedo.github.io/11-index/csaw18_doubletrouble/index.html
- 64 bit, nx yok. Her şeyin çift sayı olarak kullanılacağı ve en küçüğünden en büyüğüne sıralanacağı bir tür tampon taşması elde etmek için bir boyutu üzerine yazın, bu nedenle bu gereksinimi karşılayan bir shellcode oluşturmak gerekir, canary'nin yerinden hareket ettirilmemesi gerektiğini dikkate alarak ve sonunda RIP'i ret'e işaret eden bir adresle üzerine yazarak, en büyük adresi yığının başlangıcına işaret eden yeni bir adresle değiştirmek (program tarafından sızdırılan) böylece ret'i oraya atlamak için kullanmak mümkündür.
- https://faraz.faith/2019-10-20-secconctf-2019-sum/
- 64 bit, relro yok, canary, nx, pie yok. Yığındaki bir dizide bir off-by-one vardır, bu da bir işaretçiyi kontrol etmeyi sağlar ve WWW'yi garanti eder (dizinin üzerindeki adresle yazılan dizinin tüm sayıların toplamını yazar). Yığın kontrol altındadır, bu nedenle GOT
exit
adresipop rdi; ret
ile üzerine yazılır ve yığınamain
adresi eklenir (tekrarmain
'e döner).puts
kullanarak GOT'taki adresi sızdırmak için bir ROP zinciri kullanılır (exit
çağrılacak, bu nedenlepop rdi; ret
çağrılacak ve bu zincir yığında yürütülecektir). Son olarak, ret2lib'i yürüten 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, pie yok. Yığın üzerinden libc ve heap adreslerini sızdırmak için kötü bir indekslemeyi kötüye kullanın.
system('/bin/sh')
çağırarak bir ret2lib yapmak için tampon taşmasını kötüye kullanın (bir kontrolü aşmak için heap adresine ihtiyaç vardır).
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.