WAITFOR DELAY saldırıları ve SQL Injection

SQL Injection ile ileri derecede haşır neşir olan ben son zamanlarda daha önceden farketmediğim bir şey farkettim. BSQL Hacker ile testler yaparken WAITFOR Delay ile yaptığım atakların yüksek paralel bağlantılarda hatalı sonuçlar verdiğini gördüm.

Bu sorun ile uğraşırken Database bağlantı katman limitlerinden birini daha görmüş oldum. WAITFOR DELAY veya benzeri ataklarda 60 saniyenin üzerine giden saldırılar genelde hata verecektir çünkü varsayılan olarak bir çok web dilinde script' in zaman aşımı süresi maksimum 90 saniyedir, ek olarak ikinci sorun ise database bağlantı katmanın zaman aşımı. Bu da genelde 60 saniye. Bu iki değerde sistemden sisteme ve konfigürasyondan konfigürasyona değişebilir.

Yeni farkettiğim olay ise Connection Pooling ile de ilişkili olan ama temel olarak database katmanının desteklediği aynı anda aktif maksimum bağlantı sayısı.

Bu neden ciddi bir sorun?

Çünkü, WAITFOR DELAY ve benzeri beklemeli saldırılardaki yavaşlığı server' a çok fazla bağlantı açarak kapamak genel teorik bir fkirdir. Yani multi-threading ile. Multi-Threading tabii ki çalışıyor ancak eğer 10-15 thread' ın yukarısına giderseniz sonuçlarınız hatalı olacak ve ek olarak hiç bir hız kazanmayacaksınız.

Dolayısıyla saldırının yapıldığı sistemin kullandığı veritabanı bağlantı ayarlarından daha fazla bağlantıyı aynı anda yapmak tamamen yanlış bir hareket. Dolayısıyıla güvenli olmak adına WAITFOR DELAY ve benzeri saldırılarda maksimum 10 paralel bağlantı kullanmak mantıklı bir hareket olacaktır.

Kara_hilal - 29.01.2009

Elinize saglik hocam tesekkür ederim.

Yorum Yazın


Tüm yorumlar onaydan geçmektedir, bu işlem en uzun 30 dk. sürecektir. E-mail adresleri yeni yorumları bildirme harici hiç bir başka amaçla kullanılmamaktadır ve sitede gözükmemektedir.



Captcha Kodu