Güvenlik Testi - Arabellek Taşmaları

Bir program geçici bir veri saklama alanında (arabellek) tutması amaçlanandan daha fazla veri depolamaya çalıştığında bir arabellek taşması ortaya çıkar. Arabellekler sınırlı miktarda veri içerecek şekilde oluşturulduğundan, fazladan bilgi bitişik arabelleklere taşabilir ve böylece içlerinde tutulan geçerli verileri bozabilir.

Misal

İşte klasik bir arabellek taşması örneği. Davranışını kontrol etmek için harici verilere dayanan ilk senaryonun neden olduğu basit bir arabellek taşması gösterir. Kullanıcının girdiği veri miktarını sınırlamanın bir yolu yoktur ve programın davranışı, kullanıcının içine kaç karakter koyduğuna bağlıdır.

...
   char bufr[BUFSIZE]; 
   gets(bufr);
   ...

Eller AÇIK

Step 1- İnternet erişimi için isim ve oda numarası ile giriş yapmamız gerekiyor. İşte senaryo anlık görüntüsü.

Step 2 - Aşağıda gösterildiği gibi Burp Suite'te "Gizli form alanlarını göster" seçeneğini de etkinleştireceğiz -

Step 3- Şimdi isim ve oda numarası alanına giriş gönderiyoruz. Ayrıca oda numarası alanına oldukça büyük bir sayı enjekte etmeye çalışıyoruz.

Step 4- Gizli alanlar aşağıda gösterildiği gibi görüntülenir. Şartları kabul et seçeneğine tıklıyoruz.

Step 5 - Saldırı, arabellek taşması sonucunda, bitişik bellek konumlarını okumaya başlayacak ve aşağıda gösterildiği gibi kullanıcıya görüntülenecek şekilde başarılı olmuştur.

Step 6- Şimdi görüntülenen verileri kullanarak giriş yapalım. Oturum açtıktan sonra aşağıdaki mesaj görüntülenir -

Önleyici Mekanizmalar

  • Kod İnceleme
  • Geliştirici eğitimi
  • Derleyici araçları
  • Güvenli işlevler geliştirme
  • Periyodik Tarama