- Katılım
- 2 Ocak 2013
- Mesajlar
- 24,068
- Tepkime puanı
- 12
- Puanları
- 199
- Konum
- America
- Web sitesi
- www.metin2tr.net
Linkleri sadece kayıtlı üyeler görebilir. Linkleri görebilmek için Üye Girişi yapın veya ücretsiz olarak Kayıt Olun
İlk olarak bir siteye sql inejection yapabilmek için en gerekli olan en önemli unsur asp sayfamızın sql de işleyeceği veriyi dinamik olarak almasıdır yani kullanıcının müdehale edebileceği imkanlar sağlamasıdır işte böyle durumlarda saldırıdan korunmak için düzenli bir filtreleme uygulamamız gerekmektedir.
Örnek Bir Saldırı:
Bir üye giriş bölümümüz var bu bölüme girişi formlar aracılığı ile sağlıyoruz.
2 adet form alanımız bunlardan biri kullanıcı adı bir diğer ise şifre ve bunlar form aracılığı ile uyekontrol.asp a gönderiyoruz.
verileri request.form ile çekip databasemize sql sorgumuzda kullanıyoruz ve buna göre işlem yaptırıyoruz.
Örnek Kod Cümlesi :
dim uye,sifre
uye = request.form("kullaniciadi")
sifre = request.form("sifre")
"Select * from Uyeler where uye_ad="& uye &" and Uye_pass="& sifre &""
işte bu şekilde oluşturulmuş bir sistem bariz bir şekilde açık barındırmaktadır.
Burada Saldırgan ’or’ ’or 1=1 ’or’’=’ gibi cümleciklerle sql cümlemizi bypass etmiş olur.
Korunma Yöntemi :
Bu Tip saldırılardan korunmak için öncelikle sql cümlemizde kullanacağımız veriyi filtreden geçirmemiz lazım bunun içinde bir fonksiyondan yararlanabiliriz.
<%
’/////////////////////////////////////////////////////
’// Güvenlik için girilen karakterleri uygun karakterlere çeviriyoruz
’/////////////////////////////////////////////////////
function Sec(,SQL)
SecSQL = Replace (SecSQL ,"`","",1,-1,1)
SecSQL = Replace (SecSQL ,"=","",1,-1,1)
SecSQL = Replace (SecSQL ,"&","",1,-1,1)
SecSQL = Replace (SecSQL ,"!","",1,-1,1)
SecSQL = Replace (SecSQL ,"*","",1,-1,1)
SecSQL = Replace (SecSQL ,"/","",1,-1,1)
SecSQL = Replace (SecSQL ,"\\","",1,-1,1)
SecSQL = Replace (SecSQL ,"And","",1,-1,1)
SecSQL = Replace (SecSQL ,"’","",1,-1,1)
SecSQL = Replace(SecSQL, "-", "")
Security=SQL
end function
%>
Fonksiyonumuz bu bu şekilde gelen verideki tırnak işeratlerini vb karakterleri temizliyoruz.
Bunun kullanımı ise SecSQL(request.form("Gelenveri"))
şeklindedir.
Bu Şekilde form post saldırılarından korunabiliriz.