Alıntı falan değil kendim yazıyorum alıntı deyip benim canımı sıkmayın.
Bu konumuzda post methodundan gelen sql inj. saldırılarını engellemeyi öğreneceğiz.
TurkWarrior
Tabi saldırıyı önlemek için benim anlattıklarım şimdilik yeterli olabilir.İleride yeni yöntemler çıkacaktır.Her yöntem için tutup döküman yazacak değiliz.Bunun için size sql inj. saldırısı nasıl yapılır ondanda yüzeysel olarak bahsedeceğim.Çünkü bir sisteme nasıl saldırıldığını bilmiyorsanız o sistemi koruyamazsınız.
TurkWarrior
Evet başlayalım ;
Bu korunma yöntemi asp sayfalarda post methodundan gelen saldırılar içindir.Diğerlerini Allah izin verirse ileride ele almayı düşünüyorum.
Öncelikle bir sisteme sql inj. uygulayabilmek için en çok gerekli olan unsur sayfamızın sql sorgusunda işleyeceği veriyi dinamik olarak almasıdır.Yani kullanıcı bu sorgulara dışarıdan müdahale edebilmelidir.
TurkWarrior
İşte böyle durumlarda gelen ataklardan korunmak için düzenli bir filtreleme uygulamanız gerekmektedir.
Örnek bir saldırıyı ele alalım :
Bir login bölümümüz var.Bu bölüme giriş formlar aracılığı ile sağlanıyor.2 adet form alanımız olsun.Birisi kullaniciadi diğeri iste sifre olsun.Ve bunlar form aracılığı ile denetleme.asp ye gönderiliyor olsun.
Verileri request.form ile çekip veritabanımıza sql sorgusunda kullanıyoruz.Ve buna göre işlem yaptırıyoruz.
Örnek kodlama :
İşte bu şekilde kodlanmış bir sistem kodlamadanda görüldüğü gibi sql inj. açığını barındırmaktadır.
Burada attacker(saldırkan-hacker ne derseniz deyin işte ) 'or' 'or 1=1 'or''=' gibi cümleciklerle login bölümümüzü bypass etmiş olur.
TurkWarrior
Evet yüzeysel olarak form atağını ele aldık şimdi sıra korunma yönteminde :
Bu saldırılardan korunmak için sql sorgusunda kullanılan veriyi filtreden geçirmemiz gerekmektedir.
Peki nasıl yapacağız bunu?
Basit bir fonksiyon ile işimizi halledeceğiz.
Fonksiyonumuz bu şekilde gelen verideki " işaretlerini vs.. karakterleri filtreliyor.Yani sorguya katmadan temizliyor.
Bunun kullanımı ise : TurkWarrior(request.form("Gelenveri")) şeklindedir.
Bu şekilde form-post saldırılarından korunabiliriz.
Sorularınızı konu altından belirtebilir veya profilimden msn adresimi alıp iletişime geçebilirsiniz.
Bu dökümanda sadece ASP sayfalarda form post saldırılarından korunmayı öğrendik.Diğer dökümanlarda diğer yöntemleri ve php sayfalarıda ele alacağız bizi izlemeye devam edin.
Hep hack değil ya birazda güvenlik öğrenin.Yıkıcı olacağınıza yapıcı olmayı deneyin bu vatana daha faydalı olacaksınız emin olun.Sql inj. zaafiyeti güncel bir zaafiyettir.Hemen sizinde önlem almanızı tavsiye ederim.
Bu konumuzda post methodundan gelen sql inj. saldırılarını engellemeyi öğreneceğiz.
TurkWarrior
Tabi saldırıyı önlemek için benim anlattıklarım şimdilik yeterli olabilir.İleride yeni yöntemler çıkacaktır.Her yöntem için tutup döküman yazacak değiliz.Bunun için size sql inj. saldırısı nasıl yapılır ondanda yüzeysel olarak bahsedeceğim.Çünkü bir sisteme nasıl saldırıldığını bilmiyorsanız o sistemi koruyamazsınız.
TurkWarrior
Evet başlayalım ;
Bu korunma yöntemi asp sayfalarda post methodundan gelen saldırılar içindir.Diğerlerini Allah izin verirse ileride ele almayı düşünüyorum.
Öncelikle bir sisteme sql inj. uygulayabilmek için en çok gerekli olan unsur sayfamızın sql sorgusunda işleyeceği veriyi dinamik olarak almasıdır.Yani kullanıcı bu sorgulara dışarıdan müdahale edebilmelidir.
TurkWarrior
İşte böyle durumlarda gelen ataklardan korunmak için düzenli bir filtreleme uygulamanız gerekmektedir.
Örnek bir saldırıyı ele alalım :
Bir login bölümümüz var.Bu bölüme giriş formlar aracılığı ile sağlanıyor.2 adet form alanımız olsun.Birisi kullaniciadi diğeri iste sifre olsun.Ve bunlar form aracılığı ile denetleme.asp ye gönderiliyor olsun.
Verileri request.form ile çekip veritabanımıza sql sorgusunda kullanıyoruz.Ve buna göre işlem yaptırıyoruz.
Örnek kodlama :
Kod:
dim uye,sifre
uye = request.form("kullaniciadi")
sifre = request.form("sifre")
"Select * from Uyeler where uye_ad="& uye &" and Uye_pass="& sifre &""
Burada attacker(saldırkan-hacker ne derseniz deyin işte ) 'or' 'or 1=1 'or''=' gibi cümleciklerle login bölümümüzü bypass etmiş olur.
TurkWarrior
Evet yüzeysel olarak form atağını ele aldık şimdi sıra korunma yönteminde :
Bu saldırılardan korunmak için sql sorgusunda kullanılan veriyi filtreden geçirmemiz gerekmektedir.
Peki nasıl yapacağız bunu?
Basit bir fonksiyon ile işimizi halledeceğiz.
Kod:
<%
'/////////////////////////////////////////////////////
'// Güvenlik için girilen karakterleri uygun karakterlere çeviriyoruz
'/////////////////////////////////////////////////////
function TurkWarrior(turkhackteam)
turkhackteam = Replace (turkhackteam ,"`","",1,-1,1)
turkhackteam = Replace (turkhackteam ,"=","",1,-1,1)
turkhackteam = Replace (turkhackteam ,"&","",1,-1,1)
turkhackteam = Replace (turkhackteam ,"!","",1,-1,1)
turkhackteam = Replace (turkhackteam ,"*","",1,-1,1)
turkhackteam = Replace (turkhackteam ,"/","",1,-1,1)
turkhackteam = Replace (turkhackteam ,"\","",1,-1,1)
turkhackteam = Replace (turkhackteam ,"And","",1,-1,1)
turkhackteam = Replace (turkhackteam ,"'","",1,-1,1)
turkhackteam = Replace(turkhackteam, "-", "")
TurkWarrior=turkhackteam
end function
%>
Bunun kullanımı ise : TurkWarrior(request.form("Gelenveri")) şeklindedir.
Bu şekilde form-post saldırılarından korunabiliriz.
Sorularınızı konu altından belirtebilir veya profilimden msn adresimi alıp iletişime geçebilirsiniz.
Bu dökümanda sadece ASP sayfalarda form post saldırılarından korunmayı öğrendik.Diğer dökümanlarda diğer yöntemleri ve php sayfalarıda ele alacağız bizi izlemeye devam edin.
Hep hack değil ya birazda güvenlik öğrenin.Yıkıcı olacağınıza yapıcı olmayı deneyin bu vatana daha faydalı olacaksınız emin olun.Sql inj. zaafiyeti güncel bir zaafiyettir.Hemen sizinde önlem almanızı tavsiye ederim.
Son düzenleme: