Konuyu Oyla:
  • Toplam: 1 Oy - Ortalama: 5
  • 1
  • 2
  • 3
  • 4
  • 5
   
Konu: SQL Injection Türleri ve Login Bypass 27/05/2017
TheLaz
avatar
Kondom Mağduru
Durum: Çevrimdışı
Seviye Puanı: 21
Yaşam Puanı: 432 / 503
Deneyim: 12 / 100
Rep Sayısı: 131
Mesaj Sayısı: 525
Üyelik Tarihi: 10.04.2017
     
Yorum: #1
SQL Injection Türleri ve Login Bypass 27/05/2017
27.07.2017 08:36
1.SQL Injection Nedir?


SQL Injection, veri odaklı uygulamalarda arka planda çalışan SQL dilinden faydalanılarak standart sorgulara ek SQL ifadelerini ekleyerek yapılan bir tür saldırı çeşididir. SQL Injection, uygulamalar içinde ki güvenlik zaafiyetlerinden faydalanır. Örneğin, uygulama üzerinde girilen herhangi bir veriye SQL ifadeleri gömülür ve bu veri içerik filtre edilmeden çalıştırılıyor ise gömülen sql ifadeleri uygulama veritabanından aslında erişmemiz gereken bilgileri bizlerin önüne getirir.



SQL Injection ve Veritabanı Güvenliği
Bu saldırı diğer saldırılardan farklı bir atak tipi olduğu için yazılım geliştiricilerin bu açıdan saldırı geleceğini düşünmesi oldukça güçtür. Çoğunlukla web siteleri için kullanılan bir saldırı türü olarak bilinse de SQL veritabanına sahip tüm uygulamalar için denenebilir bir saldırıdır. Kısaca SQL Injection, SQL sorgusunun amacına müdahale ederek herkese açık olmayan bilgileri elde etmeye denir.

SQL Injection Tarihi
SQL Injection üzerindeki ilk kamu tartışmaları 1998 yılında başlamıştır. 1998'de Phrak dergisinde yayımlanan bir makalede bundan söz edilmiştir. SQL injection kullanılarak gerçekleştirilmiş büyük saldırına örnekler aşağıda ki gibidir.


D33Ds Company isimli hack grubu union tabanlı sql injection saldırısı gerçekleştirerek ele geçirdiği 453000 yahoo müşterisinin bilgilerini internete sızdırdı.
MySql.com Blind Sql injection kullanılarak hacklendi. Saldırganlar ele geçirdikleri kullanıcı adı ve şifre özetlerini internette yayınladı.
Aralarında Coca Cola, Intel ve BBC'nin bulunduğu bir çok israilli site pakistanlı hackerlar tarafından SQL injection kullanılarak hacklendi.
Yaklaşık 6.5 milyon linkedin şifre özeti kullanıcı adları olmadan internete sızdırıldı.
SQL Injection Türleri
SQL injection’ın temel de 2 çeşittir.
Hata Tabanlı SQL Injection
Blind SQL Injection


Bu çeşitler kendi içlerinde Union, Double, Boolean ve Zaman tabanlı olarak da sınıflandırılmaktadır.
Hata Tabanlı SQL Injection
Temelinde uygulamayı hataya zorlamak yatan bu açıklığın 2 alt çeşiti bulunmaktadır. Bunlar; Union ve Double dır. Uygulama hataya zorlanır ve hata mesajı yakalandığı taktirde SQL injection açıklığının varlığı belirlenmiş olur.
Blind SQL Injection
İngilizce kelime anlamından da anlaşılacağı üzere kör atış sql saldırılarıdır. Veritabanından direkt olarak bir tablo yada kolana ait bilgilere veya veritabanına ait teknik bilgilere ulaşılamaz ancak istenilen bilgiler harf harf denendiği taktirde doğru sonuçlara ulaşılacaktır. Bu sebepten ötürü el ile yapılması uğraştırıcı olup bu açıklık tespit edildiği taktirde otomatize programlar ile açıklık su istimal edilmektedir. Blind SQL injection, Boolean ve Zaman Tabanlı olarak ikiye ayrılmaktadır.

Boolean SQL injection da gönderilen mantıksal ifadenin sonucuna göre True - False değeri döner. Zaman Tabanlı SQL injection da ise gönderilen sorgunun çalıştırılıp çalıştırılmadığı soru sonucuna göre tespit edilemediğinden dolayı sorgu içine sleep() gibi fonksiyonlar yerleştirilerek sistem cevabının gecikmeye uğrayıp uğramadığına bakılır.
Temel SQL Injection Örnekleri
Örnek 1 - Login Bypass 1
Sql injection da bakılması gereken ilk işlem tek tırnaktır. Örnek olarak bir web sitesinde ki kullanıcı giriş formunu ele alalım. Bu form temel de iki bileşenden oluşmaktadır;
Kullanıcı adı
Parola
Uygulama hazırlanırken girdiler gerekli kontrollerden geçirilmez ve özel karakter dediğimiz ( , ) , ‘ , “ , < , > gibi karakterler filtre edilmez ise sql injection açıklığı ortaya çıkmaktadır. Örnekleyecek olursak;


Username : ahmet
Password : 123456


Yukarıda ki belirtilen kullanıcı bilgileri için çalışacak sql sorgusu aşağıda ki gibidir;


Kod:
SELECT * FROM Users WHERE Username = ‘ahmet’ and Password = ‘123456’

Normal şartlarda doğru çalışan bu soruguya saldırgan tarafından eğer filtrelemeler yeteri kadar yapılmadı ise bir çok işlem yapılabilir. Bu durumu örnekleyecek olursak;


Username : ahmet
Password : ‘ OR 1=1—


Bu bilgiler ile sorgu aşağıda ki gibi olacaktır;


Kod:
SELECT * FROM Users WHERE Username = ‘ahmet’ and Password = ‘’ OR 1=1--

Bu durumda sadece kullanıcı adını bildiğimiz birinin hesabına şifresini bilmeden girmiş oluruz. SQL saldırılarının en kolay açıklıkları tek tırnak ( ‘ ) veya çift tırnak ( “ ) kullanımlarının filtrelenmemiş olmasından kaynaklanmaktır. Uygulama geliştiricinin yazdığı sorgulara göre aynı işlem tek tırnak yada çift tırnakla çalışabilmektedir.


Burada yer alan tek tırnak Password değerini sonlandırmak ta olup 1=1 değeri her zaman doğruluğu gösterir burada 2=2, 3=3 gibi istenen mutlak doğru ifadeler de kullanılabilir. En sonda yer alan ( -- ) değeri ise sorgunun geri kalanının çalıştırılmamasını ifade eder.
Örnek 2 - Login Bypass 1
Bundan sonra ki örneklerimde içinde bir çok açıklığı barından eğitim amaçlı hazırlanmış bir platform olan goygoy’u kullanacağım. Aşağı daki Örnekte Parola alanını pasif durumda tutarak sadece belirttiğimiz kullanıcı adına giriş yapmayı göreceğiz.


Username alanına “admin” ve şifre alanına rastgele bir değer girdikten sonra sql sorgusunun yapısını inceliyelim.



Kod:
SELECT * FROM users
WHERE username='admin' AND password='202cb962ac59075b964b07152d234b70'

SQL sorgularının yapısına göre tek tırnak veya çift tırnak kullanılması gerekmektedir. Burada ki örneğimiz de sorguda tek tırnak kullnıldığından dolayı bizde bu yönde ilerleyeceğiz. Bu sorguda uygulanacak payloadımız;

Kod:
admin' or '1'='1


SQL sorgularında yorum satırı komutları yer almaktadır. MySQL de geçerli yorum satırı komutu ## , MsSQL de geçerli yorum satırı komutu -- dir. Yukarıda ki payload da sql sorgusunun ## den sonra ki kısımları çalışmayacak ve bu sayede şifre alanı atlatılmış olacaktır.
Örnek 3 - Login Bypass 2
Bazı sql sorgularında parantez işaretleri de kullanılmaktadır. Bu durumda tırnak işaretlerinden sonra sorgunun yorum satırı ile kesilmesi çözüm olmayacak ve yapısı bozulduğu için sorgu çalıştırılamayacaktır. Bu durumda sorguyu düzeltmek için parantezlerin kullanılması gerekmektedir.


Hide Post
(Bu konu en son: 27.07.2017 Tarihinde, Saat: 10:26 düzenlenmiştir. Düzenleyen: KingSkrupellos.)
Alinti
The_ZiziL
*
avatar
Valhalla
Durum: Çevrimiçi
Seviye Puanı: 36
Yaşam Puanı: 880 / 880
Deneyim: 22 / 100
Rep Sayısı: 550
Mesaj Sayısı: 1897
Üyelik Tarihi: 06.02.2017
     
Yorum: #2
RE: SQL Injection Türleri ve Login Bypass
27.07.2017 08:47
Eline Sağlık.

Allah’tan utanmayan insanlardan da utanmaz…
Alinti
TheLaz
avatar
Kondom Mağduru
Durum: Çevrimdışı
Seviye Puanı: 21
Yaşam Puanı: 432 / 503
Deneyim: 12 / 100
Rep Sayısı:
Mesaj Sayısı: 525
Üyelik Tarihi: 10.04.2017
     
Yorum: #3
Cvp: SQL Injection Türleri ve Login Bypass
27.07.2017 08:55
(27.07.2017 08:47)The_ZiziL Nickli Kullanıcıdan Alıntı:  Eline Sağlık.

saolasın zizil.
Alinti
KingSkrupellos
*
avatar
Hacktivist
Durum: Çevrimdışı
Seviye Puanı: 55
Yaşam Puanı: 1,372 / 1,372
Deneyim: 90 / 100
Rep Sayısı: 2766
Mesaj Sayısı: 6322
Üyelik Tarihi: 21.08.2013
     
Yorum: #4
RE: SQL Injection Türleri ve Login Bypass 27/05/2017
27.07.2017 10:27
Teşekkürler Exciting

Başlık " SQL Injection Türleri ve Login Bypass " olarak değiştirilmiştir.

Sebebi bu konuyla alakalı çok daha iyi makalelerim var forumda. Gereksiz konu olmuş şuan @TheLaz

We don't care what people think about us, we are proud of us, we not gonna change for anyone. I do not have own no website. No Contact. # KingSkrupellos # Cyberizm Digital Security Technological Turkish Moslem Army.



Alinti
-HVN4-HEN-
*
avatar
Teğmen
Durum: Çevrimdışı
Seviye Puanı: 8
Yaşam Puanı: 31 / 182
Deneyim: 29 / 100
Rep Sayısı: 6
Mesaj Sayısı: 87
Üyelik Tarihi: 31.07.2017
     
Yorum: #5
RE: SQL Injection Türleri ve Login Bypass 27/05/2017
02.08.2017 12:49
Yararli Konu Helal
Alinti



1 Ziyaretçi