Konumuz; Access SQL Injection, yani asp sistemlerdeki sql injection zaafiyeti.
Öncelikle Şunu Bilmemiz Gerekir, Access SQL Tamamen Tahmin
İşidir. Mysql’den Daha Basittir, Fakat Birikiminiz Olmalı Biraz. Örneğin, Bir Site Ele Alalım ve Burada Access SQL Olduğunu Düşünelim.
Mesela Şöyle Bir Köylü Sitemiz Olsun Atıyorum;
[Linkleri görebilmek için üye olun veya giriş yapın.]HATA ALMA İŞLEMİ
Hatamızı alıyoruz. Tırnak işareti, veya kesme işaretiyle, almayı bilmeyen yoktur sanıyorum.
[Linkleri görebilmek için üye olun veya giriş yapın.] Hatamızı Aldık, Hatamız Şu Şekilde Olacaktır.
Microsoft JET Database Engine error ’80040e14’ Syntax error in string in query expression ’id = 93";’. /grafikler.asp, line 7
Çoğu Zaman Buna Benzer Hatalar Alırsınız Access’te...
KOLON SAYISI BULMA İŞLEMİ
[Linkleri görebilmek için üye olun veya giriş yapın.] Tabii ki 1’de Hata Vermez, Artırıyoruz. İki, Üç, Beş Derken Mutlaka Sonunda Hata Verecektir.
Örneğin; Ben Sekizinci Kolonu Yazdığımda Hata Alırsam, Kolon Sayım Yedi Demektir.
[Linkleri görebilmek için üye olun veya giriş yapın.]Hata Aldığımızı Varsaydım, Demek ki Kolon Sayımız 7.
Hata Çeşidi, Herhangi Bir Farklı Sayfa Açılması, veya Hata Metni Verilmesi Şeklinde Olabilir.
İŞE YARAYAN KOLONLARI BULMA İŞLEMİ
İşimize yarayacak, yani bizim sonrasında kullanacağımız kolon sayılarını bulmak için "Union Select" Komutunu Kullanacağız. Fakat Bir de Tablo Her Hangi Bir Tablo Adı Kullanmalıyız, Kullanmalıyız ki, Kolon Sayılarımız Yansısın.
Kolon Sayımız 7’ydi, Unutmayalım ~
[Linkleri görebilmek için üye olun veya giriş yapın.] Bu şekilde uyguladığımızda Karşımıza Hata Değil, Aynı Sayfa da Değil, Sayılar Çıkmalı Birle Yedi Arasında.
Tabii, Tabloadi Yazdığım Bölüme, İşe Yarar Bir Tablo Adı Gerekiyor.
Örneğin; Tablo Adının "News" Olduğunu Farz Edersek ;
[Linkleri görebilmek için üye olun veya giriş yapın.]Şeklinde Uygulanır.
Genelde En Az İki Sayı Çıkar.
Fakat, Eğer ki Tablo Adı Yanlışsa Hata Metni Alırız Direk.
Ben 1 ve 3’ün Yansıdığını Farz Ediyorum.
TABLO ADI BULMA İŞLEMİ
Kolonumuzu da Bulduk, Sırada İşimize Yarayacak Tablo Adını Bulma İşlemi Var, Öncelikle Tablo Adlarının Ne Olabileceği Konusunda Bir Birikiminiz Olmalı.
Genellikle Tablo Adları
Admin, Admins, Users, User, Member, Members, Yonetici, Yonetim, Login etc
Şeklinde Olur.
Google’da Araştırırsanız Daha Fazla Örnek Bulabilirsiniz.
Access Tahmin İşidir Demiştik, Deneme / Yanılma Yoluyla Bulunur Tablo Adları, Kolon Adları Vesaire...
Yani, Denemeliyiz, Başka Şansımız Yok.
Ben Tablo Adının Users Olduğunu Farz Ediyorum.
Şu Şekilde Uygulayacağız;
[Linkleri görebilmek için üye olun veya giriş yapın.] ve Yine Önümüzde Kolon Yansımaları Olacak. Hata Verdiği Takdirde Tablo Adınız Yoktur DB’de
KOLON ADI BULMA ve VERİ ÇEKME İŞLEMİ
Tablo Adımızıda Bulduğumuza Göre, Artık Kolon Adlarımızıda Tahmin Edip, Verimizi Çekebiliriz.
Dikkat Ederseniz, TAHMiN EDiP, yani Bu Kolon Adlarında da Tahmin ve Birikim Önemli.
Kolon Adları Neler Olabilir?
Username, User, Login, Password, Pass, Usr, Pwd, Passwd etc.
İşe Yarayacak Kolon İsimlerinin User - Password Olduğunu Varsayıyorum.
Sırada Veri Çekme Kaldı, Yansıyan Sayılarımız Kaçtı ?
Bir ve Üç.
Onların Yerine, Gerekli Yerlere Kolon Adlarımızı Yazıyoruz.
Şu Şekilde;
[Linkleri görebilmek için üye olun veya giriş yapın.]Bunu Uyguladığımızda, Veriler Çekilmiş ve Admin Bilgilerini Ele Geçirmiş Olacağız.