WAITFOR DELAY saldırıları ve SQL Injection

31-10-2007

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.

Recent Blog Posts

See all of the blog posts