mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
31 lines
3.9 KiB
Markdown
31 lines
3.9 KiB
Markdown
|
# Dizi İndeksleme
|
|||
|
|
|||
|
<details>
|
|||
|
|
|||
|
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin!</summary>
|
|||
|
|
|||
|
HackTricks'i desteklemenin diğer yolları:
|
|||
|
|
|||
|
* **Şirketinizi HackTricks'te reklamınızı 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**](https://opensea.io/collection/the-peass-family)'yi 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'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
|
|||
|
|
|||
|
</details>
|
|||
|
|
|||
|
## 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ı, zayıflığın koşullarına tamamen bağlı olduğundan belirli bir metodolojiye sahip değildir.
|
|||
|
|
|||
|
Ancak burada güzel örnekler bulabilirsiniz:
|
|||
|
|
|||
|
* [https://guyinatuxedo.github.io/11-index/swampctf19\_dreamheaps/index.html](https://guyinatuxedo.github.io/11-index/swampctf19\_dreamheaps/index.html)
|
|||
|
* **2 çakışan dizi** bulunmaktadır, biri verilerin depolandığı **adresler** için ve diğeri o verilerin **boyutları** için. Birinden diğerine üzerine yazma yapılabilir, böylece bir boyutu gösteren keyfi bir adres yazılabilir. Bu, GOT tablosundaki `free` işlevinin adresini yazıp ardından üzerine `system` adresini yazarak ve hafızadan `/bin/sh` ile free işlevini çağırarak kullanılabilir.
|
|||
|
* [https://guyinatuxedo.github.io/11-index/csaw18\_doubletrouble/index.html](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 sıralanacağı bir tür tampon taşmasını geçmek için gereken bir kabuk kodu oluşturulması gerekmektedir. Bu gereksinimleri karşılayan bir adresle RIP'yi üzerine yazarak, en büyük adresi yığının başlangıcına işaret eden yeni bir adresle değiştirerek (program tarafından sızdırılan) ret adresini oraya atlamak mümkün olacaktır.
|
|||
|
* [https://faraz.faith/2019-10-20-secconctf-2019-sum/](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 etmeye olanak tanır (dizideki fazla olan bir elemanın adresine dizideki hata nedeniyle yazılan tüm sayıların toplamını yazar). Yığın kontrol edilir, bu nedenle GOT `exit` adresi `pop rdi; ret` ile üzerine yazılır ve yığında `main` adresi eklenir (tekrar `main`'e dönüş yapılır). GOT'daki adresi sızdırmak için puts kullanarak bir ROP zinciri kullanılır (`exit` çağrılacak, bu nedenle `pop rdi; ret` ç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](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 yığından libc ve heap adreslerini sızdırmak. Buffer overflow'u kötüye kullanarak `system('/bin/sh')` çağrısı yapmak için ret2lib kullanımı (bir kontrolü atlatmak için heap adresi gereklidir).
|