Herkese merhabalar!!
Ben Sephion, açtığım ilk konunun bilgilenidirici bir şey olmasını istedim.
Eğer yazdıklarımda hatam varsa ya da herhangi bir öneriniz varsa bana iletirseniz çok sevinirim.
İyi okumalar!
SQL INJECTION NEDİR?
SQL sorgularını manipüle ederek gerçekleştrilen bir güvenlik saldırısı türüdür.
Web sitelerinin giriş alanlarında yeterli güvenliğe sahip olmamaları SQL injectiona kurban gitmelerine sebep olabilir.
Labı açtığımızda karşımıza böyle bir alışveriş sitesi çıkıyor.
Bu sitedeki gizli verileri(gözükmeyen ürünleri) açığa çıkarmak için SQL injection kullanacağız.

İnternet sitesindeki bilgilerin yapılandırılması,düzenlenmesi için repeater kullanacağız.

Repeatera gönderdiğimiz HTTP isteğinin yanıtı response bölümünde görüntülenir.

"WHERE" ifadesini kullanarak belirli bir koşul,kategori kontrol edilebilir
ancak "OR '1'='1'" ifadesi kullanarak WHERE ifadesini etkisiz hale getirerek
aradığımız verileri açığa çıkarabilriz.
Ama bundan önce sitenin SQL injectiona açık olup olmadığını anlamamız gerekir.
Bunun için hata tabanlı SQL İnjection yöntemini kullanabilriz.
SQL sorgusundaki hataları tetikleyecek karakterler kullanıp hata mesajı döndürmeye çalışacağız.
Eğer başarılı bir şekilde hata mesajı dönerse web uygulamasına sql injection yapabilriz.

İstediğimiz hata mesajı döndüğüne göre hataya sebep olan özel karakterleri silip kodu tekrardan çalışıtralım.


Ve SQL injectionumuz başarıyla tamamlandı.
Artık ilk başta göremediğimiz saklı ürünleri de görebiliriz.
Login bypass işlemi normal bir oturum açma işlemini doğru bir kullanıcı adı-şifre yazmadan yapılmasını sağlar.

Sitenin SQL injectiona açık olup olmadığını anlamak için hataları tetiklemek için kesme işareti kullanabiliriz.


Hata aldığımıza göre SQL injectionu uygulayabiliriz.
Normal bir oturum açma işleminde girdiğimiz kullanıcı adıyla şifrenin uyuşması gerekir.
Kullanıcı adının sonuna '--' ekleyerek şifre girilmesini zorunlu kılan kısmı yorum satırına çevirip çalışmamasını sağlıyoruz.
Böylece sadece kullanıcı adını doğru bir şekilde girerek hesaba giriş yapabiliyoruz.


SQL sorgusunda UNION anahtar kelimesini kullanılarak veri tabanında bulunan veriler alınabilir yada birleştirilebilir.
Bu şekilde normalde erişilemeyen bilgilere erişilebilir.

Yine hata denemesi yaparak sitenin SQL injectiona uygun olup olmadığını kontrol ederiz.
unionhatadene.jpeg
UNION saldırısını kullanmadan önce SQL sorgusunda bulunan sütunların sayısını öğrenmemiz gerekir.
Bunun için de hata alana kadar NULL yazarak " 'UNION SELECT NULL,NULL-- " yazarız.


3'ten fazla "NULL" yazınca hata aldığımıza göre bu SQL sorgusunun 3 sütunu olduğunu öğrenmiş olduk.


------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------
Ben Sephion, açtığım ilk konunun bilgilenidirici bir şey olmasını istedim.
Eğer yazdıklarımda hatam varsa ya da herhangi bir öneriniz varsa bana iletirseniz çok sevinirim.
İyi okumalar!
SQL INJECTION NEDİR?
SQL sorgularını manipüle ederek gerçekleştrilen bir güvenlik saldırısı türüdür.
Web sitelerinin giriş alanlarında yeterli güvenliğe sahip olmamaları SQL injectiona kurban gitmelerine sebep olabilir.
1 - Lab: SQL injection vulnerability in WHERE clause allowing retrieval of hidden data
Labı açtığımızda karşımıza böyle bir alışveriş sitesi çıkıyor.
Bu sitedeki gizli verileri(gözükmeyen ürünleri) açığa çıkarmak için SQL injection kullanacağız.
İnternet sitesindeki bilgilerin yapılandırılması,düzenlenmesi için repeater kullanacağız.
Repeatera gönderdiğimiz HTTP isteğinin yanıtı response bölümünde görüntülenir.
"WHERE" ifadesini kullanarak belirli bir koşul,kategori kontrol edilebilir
ancak "OR '1'='1'" ifadesi kullanarak WHERE ifadesini etkisiz hale getirerek
aradığımız verileri açığa çıkarabilriz.
Ama bundan önce sitenin SQL injectiona açık olup olmadığını anlamamız gerekir.
Bunun için hata tabanlı SQL İnjection yöntemini kullanabilriz.
SQL sorgusundaki hataları tetikleyecek karakterler kullanıp hata mesajı döndürmeye çalışacağız.
Eğer başarılı bir şekilde hata mesajı dönerse web uygulamasına sql injection yapabilriz.
İstediğimiz hata mesajı döndüğüne göre hataya sebep olan özel karakterleri silip kodu tekrardan çalışıtralım.
Ve SQL injectionumuz başarıyla tamamlandı.
Artık ilk başta göremediğimiz saklı ürünleri de görebiliriz.
2 - Lab: SQL injection vulnerability allowing login bypass
Login bypass işlemi normal bir oturum açma işlemini doğru bir kullanıcı adı-şifre yazmadan yapılmasını sağlar.
Sitenin SQL injectiona açık olup olmadığını anlamak için hataları tetiklemek için kesme işareti kullanabiliriz.
Hata aldığımıza göre SQL injectionu uygulayabiliriz.
Normal bir oturum açma işleminde girdiğimiz kullanıcı adıyla şifrenin uyuşması gerekir.
Kullanıcı adının sonuna '--' ekleyerek şifre girilmesini zorunlu kılan kısmı yorum satırına çevirip çalışmamasını sağlıyoruz.
Böylece sadece kullanıcı adını doğru bir şekilde girerek hesaba giriş yapabiliyoruz.
3 - Lab: SQL injection UNION attack, determining the number of columns returned by the query
SQL sorgusunda UNION anahtar kelimesini kullanılarak veri tabanında bulunan veriler alınabilir yada birleştirilebilir.
Bu şekilde normalde erişilemeyen bilgilere erişilebilir.
Yine hata denemesi yaparak sitenin SQL injectiona uygun olup olmadığını kontrol ederiz.
unionhatadene.jpeg
UNION saldırısını kullanmadan önce SQL sorgusunda bulunan sütunların sayısını öğrenmemiz gerekir.
Bunun için de hata alana kadar NULL yazarak " 'UNION SELECT NULL,NULL-- " yazarız.
3'ten fazla "NULL" yazınca hata aldığımıza göre bu SQL sorgusunun 3 sütunu olduğunu öğrenmiş olduk.
------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------



