Today's Learning
CTF çözdüğüm sıralarda öğrendiğim ufak tefek ama kritik bilgileri unutmamak maksadıyla burada paylaşıyorum.
Bugün neler öğrendim
Bugün neler öğrendim
- Bir string'in boyutu değiştiğinde bellekteki adresi de değişir.
- Debugger ile bir fonksiyonu incelemeye başlamadan önce fonksiyonun stack frame'ini öğren. Bunu bilmek sana stack'i analiz ederken kolaylık sağlar.
- Bir uygulama, dosya çağıracağı vakit dosyayı aramaya başlayacağı yer uygulamanın çalıştırıldığı dizindir.
- Bir uygulamayı analiz ederken _init_ ve _finit_ fonksiyonlarını analiz etmekte fayda var. Böylece program açıldığı ve kapandığı sırada hangi işlemler yapıldığını bilebiliriz..
- Bellek taşırma zafiyetini istismar ederken şayet stack'te yeteri kadar buffer alanı yoksa, shelcode'un başına sub esp, 0xN yönergesini yerleştirerek gerekli buffer alanını tahsis edebiliriz. (N: bize gereken byte miktarının hexadecimal karşılığı)
- Bellek taşırma zafiyetini istismar ederken şayet stack'te yeteri kadar buffer alanı yoksa ve yukarıdaki çözümü kullanmamız olanaksız ise asıl shellcode'umuzu işaretleyerek (STRING + shellcode) farklı bir parametre aracılığıyla belleğin farklı bir alanında saklayıp, ufak buffer alanımızda ise Egg Hunter Shellcode umuzu çalıştırarak zafiyeti istismar etme imkanı elde edebiliriz. (bkz: Egg Hunting Technique in Buffer Overflow)
Yorumlar
Yorum Gönder