SQL Injection - 1 - SQL Injection Türleri

raistaron

Katılımcı Üye
8 Tem 2020
708
315
neutron
herkese selam olsun

SQL Injection Nedir?


SQL Injection en basit tanımı ile bir kod enjekte olayıdır.
Siteden veri tabanına sorgular gider. Biz de bu sorgulara kendi kodlarımızı ekleyerek veri tabanından bilgi çekmeye çalışırız.
SQL Injection türlere ayrılır bunlardan aşağıda bahsettim umarım faydalı olur.

SQL Injection Nerelerde Karşımıza Çıkar?


SQL Injection en çok elbette giriş panellerinde karşımıza çıkar.
Web sayfalarında veri tabanına sorgu giden her yerde olma ihtimali var.

Şunu da eklemek istiyorum ki bu konunun birinci kısmıdır.


İyi okumalar diliyorum...





SQL Injection Türleri Ana Başlıklar



In-Band SQLi

Inferential SQLi

Out-of-Band SQLi



1-In-Band SQLi Nedir?




In-Band SQLi sorgularımızı gönderdiğimiz yerden aldığımız türdür.

Yani bizim açığı bulduğumuz sayfada işlem yapmamızdır. Diyelim ki açığı neutrontht.com/welcome sayfasında bulduk. İşlemleri de bu sayfadan yapar ve bu sayfadan dönüt alırız. Aslında en çok kullanılan yöntemde budur.

Error-Based SQLi de bu ana başlığın bir alt dalıdır.
Error-Based SQLi

hatalar ile sömürürüz. Diyelim ki bir sorgu hazırladık ve gönderdik ama bize hata döndürdü. İşte burada Error-Based SQLi vardır. Biz de sorguyu düzenleyip aktif etmeye çalışırız.

Bir diğer alt başlığımızda Union-Based SQLi

Union-Based SQLi birden fazla select sorgusu ile çalışır. Biz sorguları göndeririz ve tek bir sonuç olarak birleşir.





2-Inferential SQLi Nedir?




Inferential SQLi biraz daha farklı. Sonuç almak uzun sürecektir ama daha tehlikelidir. Bir farklılıkta error almayız. Sonuçlara göre veri tabanı yapılandırılır.

Alt başlığı Based Blind SQLi

Bu kez hata alınmaz. Sorgu için doğru ya da yanlış sonuçları döner. Sorgu yeniden yapılandırılır.

Time-Based Blind SQLi de bu kısımda bir alt başlık. Time-Based Blind SQLi timedan da anlarsınız ki bir süre belirlenir. Söz konusu sürede geri dönüş gelirse sorgu başarılıdır.



3-Out-of-Band SQLi




Bu kez iş biraz daha sunucuyla alakalı oluyor. Sorguyu siteden gönderirsek başka bir yerden alırız. Kısaca böyle düşünebilirsiniz.

Hiç karşılaşmadım şuana kadar ama bu da bir zafiyet.



Şimdi uygulama adımına geçelim. Uygulama için zafiyet barındıran bir makine kullanıyorum.
Aslında bWAPP kullanacaktım fakat kurulum hataları oldu. Web For Pentester kullanacağım.

Web For Pentester kurulumunu farklı bir konu ile anlatacağım bugün yarın açarım onu da.


Kali Linuxda sayfayı açıyorum

olmz3mo.png


Sql bölümünde ilk örneğe gidiyorum.
Şunu da söyleyeyim ki eğer bir sorun olmazsa bu örneklerin hepsini teker teker çözeceğiz.
İlk sayfaya tıklayınca beni bir sayfa karşılıyor.

nq8gvvb.png


Sayfada bize verilmiş bir tablo var ve biz linke odaklanıyoruz. Aklınıza direkt sonuna " veya ' koymak gelebilir. Biz bunu yapmıyoruz.
Sitede bir zafiyet olduğunu biliyoruz çünkü. Tabi ki zafiyeti bulmak istiyorsanız bu konudan yardım alabilirsiniz.

Biz bu açığı sömürmek için payload kullanacağız. Payloadları nerden bulmak için bir site var. Sql injection payload list şeklinde aratmanız yeterli olacak.

Her açığı istismar ederken elimizle girmeyeceğiz ilk seferinde giriyoruz mantığı oturtmak için. Bulduğunuz listedeki payloadların hepsi çalışmayacaktır. Bunun için teker teker denemek gerekiyor.

g6bth0x.png


Peki bulduğumuz listedeki payloadları nasıl kullanacağız. Linkin sonuna ekleyerek. root yazısını sile de bilirsiniz öyle kaladabilir.
Ben baya bir denedim payload sonunda bir tane buldum oda yukarıda var zaten. Şimdi gelelim sonuca. Bize veri tabanında ki bilgileri gösterdi. Peki payload bunu nasıl yaptı. Bunu da 2. bölümde göreceğiz.
Manuel olarak böyle yaptık peki ya araç ile. Bir çoğunuzun aklına sqlmap gelmiştir. Şimdi de sqlmap ile sömürmeye çalışalım.

rdvanci.png


Terminali açalım ve başlayalım.

el0vg73.png

sqlmap -u link --dbs
yazıyorum ve şu an işlem başladı.


8z4uvm0.png


iki sonuç döndü information_schema hemen hemen hepsinden vardır. Biz exercises ile ilgileniyoruz.
Bunun için;

lojv0vd.png
sqlmap -u link -D execises --tables
çalıştırıyorum ve tekrar işlemeye başladı.

f16o280.png


Bize tablo olarak sadece users döndürdü. Şimdi kolonları çekeceğiz.
Bunun için;
sqlmap -u link -D execises -T users --columns

komutunu girdim ve aşağıdaki sonucu aldık.

17k6mm6.png


kolonları aldık. Şimdi ise kolonların içindeki bilgilere ulaşmamız gerekiyor.
Bunun için linke -C age,groupid,id,name,passwd --dump bölümü ekliyorum. Biz bütün kolonları yazdık ama sadece istediklerimize de yazabilirdik.
Tüm bilgiler için hepsini dump ediyoruz ve enter yaptık.

fcenq5n.png


Şimdi bilgiler döküldü.
Web sayfasından aldığımız sonuçları şimdi ise terminalden aldık. Hedefi sqlmal ile de sömürdük.
Hepsi bu kadar kolay olmayacak araya waf girenler olacak.
Söylediğim gibi bu konunun ilerleyen kısımlarında her birine deyineceğim.

bir sonraki konuda görüşmek üzere


iyi forumlar diliyorum
 

'GHOST

Uzman üye
31 Mar 2022
1,387
568
herkese selam olsun

SQL Injection Nedir?


SQL Injection en basit tanımı ile bir kod enjekte olayıdır.
Siteden veri tabanına sorgular gider. Biz de bu sorgulara kendi kodlarımızı ekleyerek veri tabanından bilgi çekmeye çalışırız.
SQL Injection türlere ayrılır bunlardan aşağıda bahsettim umarım faydalı olur.

SQL Injection Nerelerde Karşımıza Çıkar?


SQL Injection en çok elbette giriş panellerinde karşımıza çıkar.
Web sayfalarında veri tabanına sorgu giden her yerde olma ihtimali var.

Şunu da eklemek istiyorum ki bu konunun birinci kısmıdır.


İyi okumalar diliyorum...





SQL Injection Türleri Ana Başlıklar



In-Band SQLi

Inferential SQLi

Out-of-Band SQLi



1-In-Band SQLi Nedir?




In-Band SQLi sorgularımızı gönderdiğimiz yerden aldığımız türdür.

Yani bizim açığı bulduğumuz sayfada işlem yapmamızdır. Diyelim ki açığı neutrontht.com/welcome sayfasında bulduk. İşlemleri de bu sayfadan yapar ve bu sayfadan dönüt alırız. Aslında en çok kullanılan yöntemde budur.

Error-Based SQLi de bu ana başlığın bir alt dalıdır.
Error-Based SQLi

hatalar ile sömürürüz. Diyelim ki bir sorgu hazırladık ve gönderdik ama bize hata döndürdü. İşte burada Error-Based SQLi vardır. Biz de sorguyu düzenleyip aktif etmeye çalışırız.

Bir diğer alt başlığımızda Union-Based SQLi

Union-Based SQLi birden fazla select sorgusu ile çalışır. Biz sorguları göndeririz ve tek bir sonuç olarak birleşir.





2-Inferential SQLi Nedir?




Inferential SQLi biraz daha farklı. Sonuç almak uzun sürecektir ama daha tehlikelidir. Bir farklılıkta error almayız. Sonuçlara göre veri tabanı yapılandırılır.

Alt başlığı Based Blind SQLi

Bu kez hata alınmaz. Sorgu için doğru ya da yanlış sonuçları döner. Sorgu yeniden yapılandırılır.

Time-Based Blind SQLi de bu kısımda bir alt başlık. Time-Based Blind SQLi timedan da anlarsınız ki bir süre belirlenir. Söz konusu sürede geri dönüş gelirse sorgu başarılıdır.



3-Out-of-Band SQLi




Bu kez iş biraz daha sunucuyla alakalı oluyor. Sorguyu siteden gönderirsek başka bir yerden alırız. Kısaca böyle düşünebilirsiniz.

Hiç karşılaşmadım şuana kadar ama bu da bir zafiyet.



Şimdi uygulama adımına geçelim. Uygulama için zafiyet barındıran bir makine kullanıyorum.
Aslında bWAPP kullanacaktım fakat kurulum hataları oldu. Web For Pentester kullanacağım.

Web For Pentester kurulumunu farklı bir konu ile anlatacağım bugün yarın açarım onu da.


Kali Linuxda sayfayı açıyorum

olmz3mo.png


Sql bölümünde ilk örneğe gidiyorum.
Şunu da söyleyeyim ki eğer bir sorun olmazsa bu örneklerin hepsini teker teker çözeceğiz.
İlk sayfaya tıklayınca beni bir sayfa karşılıyor.

nq8gvvb.png


Sayfada bize verilmiş bir tablo var ve biz linke odaklanıyoruz. Aklınıza direkt sonuna " veya ' koymak gelebilir. Biz bunu yapmıyoruz.
Sitede bir zafiyet olduğunu biliyoruz çünkü. Tabi ki zafiyeti bulmak istiyorsanız bu konudan yardım alabilirsiniz.

Biz bu açığı sömürmek için payload kullanacağız. Payloadları nerden bulmak için bir site var. Sql injection payload list şeklinde aratmanız yeterli olacak.

Her açığı istismar ederken elimizle girmeyeceğiz ilk seferinde giriyoruz mantığı oturtmak için. Bulduğunuz listedeki payloadların hepsi çalışmayacaktır. Bunun için teker teker denemek gerekiyor.

g6bth0x.png


Peki bulduğumuz listedeki payloadları nasıl kullanacağız. Linkin sonuna ekleyerek. root yazısını sile de bilirsiniz öyle kaladabilir.
Ben baya bir denedim payload sonunda bir tane buldum oda yukarıda var zaten. Şimdi gelelim sonuca. Bize veri tabanında ki bilgileri gösterdi. Peki payload bunu nasıl yaptı. Bunu da 2. bölümde göreceğiz.
Manuel olarak böyle yaptık peki ya araç ile. Bir çoğunuzun aklına sqlmap gelmiştir. Şimdi de sqlmap ile sömürmeye çalışalım.

rdvanci.png


Terminali açalım ve başlayalım.

el0vg73.png



yazıyorum ve şu an işlem başladı.


8z4uvm0.png


iki sonuç döndü information_schema hemen hemen hepsinden vardır. Biz exercises ile ilgileniyoruz.
Bunun için;

lojv0vd.png


çalıştırıyorum ve tekrar işlemeye başladı.

f16o280.png


Bize tablo olarak sadece users döndürdü. Şimdi kolonları çekeceğiz.
Bunun için;


komutunu girdim ve aşağıdaki sonucu aldık.

17k6mm6.png


kolonları aldık. Şimdi ise kolonların içindeki bilgilere ulaşmamız gerekiyor.
Bunun için linke -C age,groupid,id,name,passwd --dump bölümü ekliyorum. Biz bütün kolonları yazdık ama sadece istediklerimize de yazabilirdik.
Tüm bilgiler için hepsini dump ediyoruz ve enter yaptık.

fcenq5n.png


Şimdi bilgiler döküldü.
Web sayfasından aldığımız sonuçları şimdi ise terminalden aldık. Hedefi sqlmal ile de sömürdük.
Hepsi bu kadar kolay olmayacak araya waf girenler olacak.
Söylediğim gibi bu konunun ilerleyen kısımlarında her birine deyineceğim.

bir sonraki konuda görüşmek üzere


iyi forumlar diliyorum
Eline sağlık temel kavrama için güzel bir konu
 

Tqrik

Üye
2 May 2022
109
38
Çok gizli
herkese selam olsun

SQL Injection Nedir?


SQL Injection en basit tanımı ile bir kod enjekte olayıdır.
Siteden veri tabanına sorgular gider. Biz de bu sorgulara kendi kodlarımızı ekleyerek veri tabanından bilgi çekmeye çalışırız.
SQL Injection türlere ayrılır bunlardan aşağıda bahsettim umarım faydalı olur.

SQL Injection Nerelerde Karşımıza Çıkar?


SQL Injection en çok elbette giriş panellerinde karşımıza çıkar.
Web sayfalarında veri tabanına sorgu giden her yerde olma ihtimali var.

Şunu da eklemek istiyorum ki bu konunun birinci kısmıdır.


İyi okumalar diliyorum...





SQL Injection Türleri Ana Başlıklar



In-Band SQLi

Inferential SQLi

Out-of-Band SQLi



1-In-Band SQLi Nedir?




In-Band SQLi sorgularımızı gönderdiğimiz yerden aldığımız türdür.

Yani bizim açığı bulduğumuz sayfada işlem yapmamızdır. Diyelim ki açığı neutrontht.com/welcome sayfasında bulduk. İşlemleri de bu sayfadan yapar ve bu sayfadan dönüt alırız. Aslında en çok kullanılan yöntemde budur.

Error-Based SQLi de bu ana başlığın bir alt dalıdır.
Error-Based SQLi

hatalar ile sömürürüz. Diyelim ki bir sorgu hazırladık ve gönderdik ama bize hata döndürdü. İşte burada Error-Based SQLi vardır. Biz de sorguyu düzenleyip aktif etmeye çalışırız.

Bir diğer alt başlığımızda Union-Based SQLi

Union-Based SQLi birden fazla select sorgusu ile çalışır. Biz sorguları göndeririz ve tek bir sonuç olarak birleşir.





2-Inferential SQLi Nedir?




Inferential SQLi biraz daha farklı. Sonuç almak uzun sürecektir ama daha tehlikelidir. Bir farklılıkta error almayız. Sonuçlara göre veri tabanı yapılandırılır.

Alt başlığı Based Blind SQLi

Bu kez hata alınmaz. Sorgu için doğru ya da yanlış sonuçları döner. Sorgu yeniden yapılandırılır.

Time-Based Blind SQLi de bu kısımda bir alt başlık. Time-Based Blind SQLi timedan da anlarsınız ki bir süre belirlenir. Söz konusu sürede geri dönüş gelirse sorgu başarılıdır.



3-Out-of-Band SQLi




Bu kez iş biraz daha sunucuyla alakalı oluyor. Sorguyu siteden gönderirsek başka bir yerden alırız. Kısaca böyle düşünebilirsiniz.

Hiç karşılaşmadım şuana kadar ama bu da bir zafiyet.



Şimdi uygulama adımına geçelim. Uygulama için zafiyet barındıran bir makine kullanıyorum.
Aslında bWAPP kullanacaktım fakat kurulum hataları oldu. Web For Pentester kullanacağım.

Web For Pentester kurulumunu farklı bir konu ile anlatacağım bugün yarın açarım onu da.


Kali Linuxda sayfayı açıyorum

olmz3mo.png


Sql bölümünde ilk örneğe gidiyorum.
Şunu da söyleyeyim ki eğer bir sorun olmazsa bu örneklerin hepsini teker teker çözeceğiz.
İlk sayfaya tıklayınca beni bir sayfa karşılıyor.

nq8gvvb.png


Sayfada bize verilmiş bir tablo var ve biz linke odaklanıyoruz. Aklınıza direkt sonuna " veya ' koymak gelebilir. Biz bunu yapmıyoruz.
Sitede bir zafiyet olduğunu biliyoruz çünkü. Tabi ki zafiyeti bulmak istiyorsanız bu konudan yardım alabilirsiniz.

Biz bu açığı sömürmek için payload kullanacağız. Payloadları nerden bulmak için bir site var. Sql injection payload list şeklinde aratmanız yeterli olacak.

Her açığı istismar ederken elimizle girmeyeceğiz ilk seferinde giriyoruz mantığı oturtmak için. Bulduğunuz listedeki payloadların hepsi çalışmayacaktır. Bunun için teker teker denemek gerekiyor.

g6bth0x.png


Peki bulduğumuz listedeki payloadları nasıl kullanacağız. Linkin sonuna ekleyerek. root yazısını sile de bilirsiniz öyle kaladabilir.
Ben baya bir denedim payload sonunda bir tane buldum oda yukarıda var zaten. Şimdi gelelim sonuca. Bize veri tabanında ki bilgileri gösterdi. Peki payload bunu nasıl yaptı. Bunu da 2. bölümde göreceğiz.
Manuel olarak böyle yaptık peki ya araç ile. Bir çoğunuzun aklına sqlmap gelmiştir. Şimdi de sqlmap ile sömürmeye çalışalım.

rdvanci.png


Terminali açalım ve başlayalım.

el0vg73.png



yazıyorum ve şu an işlem başladı.


8z4uvm0.png


iki sonuç döndü information_schema hemen hemen hepsinden vardır. Biz exercises ile ilgileniyoruz.
Bunun için;

lojv0vd.png


çalıştırıyorum ve tekrar işlemeye başladı.

f16o280.png


Bize tablo olarak sadece users döndürdü. Şimdi kolonları çekeceğiz.
Bunun için;


komutunu girdim ve aşağıdaki sonucu aldık.

17k6mm6.png


kolonları aldık. Şimdi ise kolonların içindeki bilgilere ulaşmamız gerekiyor.
Bunun için linke -C age,groupid,id,name,passwd --dump bölümü ekliyorum. Biz bütün kolonları yazdık ama sadece istediklerimize de yazabilirdik.
Tüm bilgiler için hepsini dump ediyoruz ve enter yaptık.

fcenq5n.png


Şimdi bilgiler döküldü.
Web sayfasından aldığımız sonuçları şimdi ise terminalden aldık. Hedefi sqlmal ile de sömürdük.
Hepsi bu kadar kolay olmayacak araya waf girenler olacak.
Söylediğim gibi bu konunun ilerleyen kısımlarında her birine deyineceğim.

bir sonraki konuda görüşmek üzere


iyi forumlar diliyorum
Eline sağlık
 

The Gölge

Saldırı Timleri Emektar
herkese selam olsun

SQL Injection Nedir?


SQL Injection en basit tanımı ile bir kod enjekte olayıdır.
Siteden veri tabanına sorgular gider. Biz de bu sorgulara kendi kodlarımızı ekleyerek veri tabanından bilgi çekmeye çalışırız.
SQL Injection türlere ayrılır bunlardan aşağıda bahsettim umarım faydalı olur.

SQL Injection Nerelerde Karşımıza Çıkar?


SQL Injection en çok elbette giriş panellerinde karşımıza çıkar.
Web sayfalarında veri tabanına sorgu giden her yerde olma ihtimali var.

Şunu da eklemek istiyorum ki bu konunun birinci kısmıdır.


İyi okumalar diliyorum...





SQL Injection Türleri Ana Başlıklar



In-Band SQLi

Inferential SQLi

Out-of-Band SQLi



1-In-Band SQLi Nedir?




In-Band SQLi sorgularımızı gönderdiğimiz yerden aldığımız türdür.

Yani bizim açığı bulduğumuz sayfada işlem yapmamızdır. Diyelim ki açığı neutrontht.com/welcome sayfasında bulduk. İşlemleri de bu sayfadan yapar ve bu sayfadan dönüt alırız. Aslında en çok kullanılan yöntemde budur.

Error-Based SQLi de bu ana başlığın bir alt dalıdır.
Error-Based SQLi

hatalar ile sömürürüz. Diyelim ki bir sorgu hazırladık ve gönderdik ama bize hata döndürdü. İşte burada Error-Based SQLi vardır. Biz de sorguyu düzenleyip aktif etmeye çalışırız.

Bir diğer alt başlığımızda Union-Based SQLi

Union-Based SQLi birden fazla select sorgusu ile çalışır. Biz sorguları göndeririz ve tek bir sonuç olarak birleşir.





2-Inferential SQLi Nedir?




Inferential SQLi biraz daha farklı. Sonuç almak uzun sürecektir ama daha tehlikelidir. Bir farklılıkta error almayız. Sonuçlara göre veri tabanı yapılandırılır.

Alt başlığı Based Blind SQLi

Bu kez hata alınmaz. Sorgu için doğru ya da yanlış sonuçları döner. Sorgu yeniden yapılandırılır.

Time-Based Blind SQLi de bu kısımda bir alt başlık. Time-Based Blind SQLi timedan da anlarsınız ki bir süre belirlenir. Söz konusu sürede geri dönüş gelirse sorgu başarılıdır.



3-Out-of-Band SQLi




Bu kez iş biraz daha sunucuyla alakalı oluyor. Sorguyu siteden gönderirsek başka bir yerden alırız. Kısaca böyle düşünebilirsiniz.

Hiç karşılaşmadım şuana kadar ama bu da bir zafiyet.



Şimdi uygulama adımına geçelim. Uygulama için zafiyet barındıran bir makine kullanıyorum.
Aslında bWAPP kullanacaktım fakat kurulum hataları oldu. Web For Pentester kullanacağım.

Web For Pentester kurulumunu farklı bir konu ile anlatacağım bugün yarın açarım onu da.


Kali Linuxda sayfayı açıyorum

olmz3mo.png


Sql bölümünde ilk örneğe gidiyorum.
Şunu da söyleyeyim ki eğer bir sorun olmazsa bu örneklerin hepsini teker teker çözeceğiz.
İlk sayfaya tıklayınca beni bir sayfa karşılıyor.

nq8gvvb.png


Sayfada bize verilmiş bir tablo var ve biz linke odaklanıyoruz. Aklınıza direkt sonuna " veya ' koymak gelebilir. Biz bunu yapmıyoruz.
Sitede bir zafiyet olduğunu biliyoruz çünkü. Tabi ki zafiyeti bulmak istiyorsanız bu konudan yardım alabilirsiniz.

Biz bu açığı sömürmek için payload kullanacağız. Payloadları nerden bulmak için bir site var. Sql injection payload list şeklinde aratmanız yeterli olacak.

Her açığı istismar ederken elimizle girmeyeceğiz ilk seferinde giriyoruz mantığı oturtmak için. Bulduğunuz listedeki payloadların hepsi çalışmayacaktır. Bunun için teker teker denemek gerekiyor.

g6bth0x.png


Peki bulduğumuz listedeki payloadları nasıl kullanacağız. Linkin sonuna ekleyerek. root yazısını sile de bilirsiniz öyle kaladabilir.
Ben baya bir denedim payload sonunda bir tane buldum oda yukarıda var zaten. Şimdi gelelim sonuca. Bize veri tabanında ki bilgileri gösterdi. Peki payload bunu nasıl yaptı. Bunu da 2. bölümde göreceğiz.
Manuel olarak böyle yaptık peki ya araç ile. Bir çoğunuzun aklına sqlmap gelmiştir. Şimdi de sqlmap ile sömürmeye çalışalım.

rdvanci.png


Terminali açalım ve başlayalım.

el0vg73.png



yazıyorum ve şu an işlem başladı.


8z4uvm0.png


iki sonuç döndü information_schema hemen hemen hepsinden vardır. Biz exercises ile ilgileniyoruz.
Bunun için;

lojv0vd.png


çalıştırıyorum ve tekrar işlemeye başladı.

f16o280.png


Bize tablo olarak sadece users döndürdü. Şimdi kolonları çekeceğiz.
Bunun için;


komutunu girdim ve aşağıdaki sonucu aldık.

17k6mm6.png


kolonları aldık. Şimdi ise kolonların içindeki bilgilere ulaşmamız gerekiyor.
Bunun için linke -C age,groupid,id,name,passwd --dump bölümü ekliyorum. Biz bütün kolonları yazdık ama sadece istediklerimize de yazabilirdik.
Tüm bilgiler için hepsini dump ediyoruz ve enter yaptık.

fcenq5n.png


Şimdi bilgiler döküldü.
Web sayfasından aldığımız sonuçları şimdi ise terminalden aldık. Hedefi sqlmal ile de sömürdük.
Hepsi bu kadar kolay olmayacak araya waf girenler olacak.
Söylediğim gibi bu konunun ilerleyen kısımlarında her birine deyineceğim.

bir sonraki konuda görüşmek üzere


iyi forumlar diliyorum
SQL Injection alanında yüksek lisans yapan biri olarak naçizane ufak eleştirilerim. SQL Injection Türlerini yüzeysel işlemişsin bir kaç türe daha sahip ve diğer Web Zafiyetleri ile ilişkisi var mı sqlden başka zafiyete geçiş yapmak mümkün mü gibi konuları bu konu başlığı altında değinebilirdin. Manuel kısmında neden kırmak veyahut çift tırnak kullanıldığı alternatif tespit fonksiyonları olup olmadığına değinebilirdin. Zafiyetin sömürümü konusunu ileri ki konumda detaylı bir şekilde anlatabilirdin.
İyi forumlar dilerim :)
 

raistaron

Katılımcı Üye
8 Tem 2020
708
315
neutron
SQL Injection alanında yüksek lisans yapan biri olarak naçizane ufak eleştirilerim. SQL Injection Türlerini yüzeysel işlemişsin bir kaç türe daha sahip ve diğer Web Zafiyetleri ile ilişkisi var mı sqlden başka zafiyete geçiş yapmak mümkün mü gibi konuları bu konu başlığı altında değinebilirdin. Manuel kısmında neden kırmak veyahut çift tırnak kullanıldığı alternatif tespit fonksiyonları olup olmadığına değinebilirdin. Zafiyetin sömürümü konusunu ileri ki konumda detaylı bir şekilde anlatabilirdin.
İyi forumlar dilerim :)
merhaba @The Golge
SQL Injection Türlerini yüzeysel işlemişsin
bütün türler için kendilerine özgü konular olacak yazıda da söylediğim gibi devamı sürecek ve uzun bir sql konusu olacak bu 1. konu
Web Zafiyetleri ile ilişkisi var mı sqlden başka zafiyete geçiş yapmak mümkün mü gibi konuları bu konu başlığı altında değinebilirdin
bu konuda oldukça haklısın buna deyineceğim diğer konularda teşekkür ederim
Manuel kısmında neden kırmak veyahut çift tırnak kullanıldığı alternatif tespit fonksiyonları olup olmadığına değinebilirdin
burada söylemek istediğini çok iyi anladım bu konuda. Bunu da bir tavsiye olarak alıyorum. Ekleyeceğim :)
Zafiyetin sömürümü konusunu ileri ki konumda detaylı bir şekilde anlatabilirdin.
bu da üstte belirttiğim gibi uzun bir serüvenin ilk kısmı bundan elbette derin derin bahsedeceğim

teşekkürler
 

The Gölge

Saldırı Timleri Emektar
merhaba @The Golge

bütün türler için kendilerine özgü konular olacak yazıda da söylediğim gibi devamı sürecek ve uzun bir sql konusu olacak bu 1. konu

bu konuda oldukça haklısın buna deyineceğim diğer konularda teşekkür ederim

burada söylemek istediğini çok iyi anladım bu konuda. Bunu da bir tavsiye olarak alıyorum. Ekleyeceğim :)

bu da üstte belirttiğim gibi uzun bir serüvenin ilk kısmı bundan elbette derin derin bahsedeceğim

teşekkürler
Rica ederim yardım gerekirse dm yoluyla ulaşabilirsiniz ileriki konuları dört gözle bekliyorum :)
 

raistaron

Katılımcı Üye
8 Tem 2020
708
315
neutron

JohnWick51

Uzman üye
20 Mar 2022
1,867
770
28
herkese selam olsun

SQL Injection Nedir?


SQL Injection en basit tanımı ile bir kod enjekte olayıdır.
Siteden veri tabanına sorgular gider. Biz de bu sorgulara kendi kodlarımızı ekleyerek veri tabanından bilgi çekmeye çalışırız.
SQL Injection türlere ayrılır bunlardan aşağıda bahsettim umarım faydalı olur.

SQL Injection Nerelerde Karşımıza Çıkar?


SQL Injection en çok elbette giriş panellerinde karşımıza çıkar.
Web sayfalarında veri tabanına sorgu giden her yerde olma ihtimali var.

Şunu da eklemek istiyorum ki bu konunun birinci kısmıdır.


İyi okumalar diliyorum...





SQL Injection Türleri Ana Başlıklar



In-Band SQLi

Inferential SQLi

Out-of-Band SQLi



1-In-Band SQLi Nedir?




In-Band SQLi sorgularımızı gönderdiğimiz yerden aldığımız türdür.

Yani bizim açığı bulduğumuz sayfada işlem yapmamızdır. Diyelim ki açığı neutrontht.com/welcome sayfasında bulduk. İşlemleri de bu sayfadan yapar ve bu sayfadan dönüt alırız. Aslında en çok kullanılan yöntemde budur.

Error-Based SQLi de bu ana başlığın bir alt dalıdır.
Error-Based SQLi

hatalar ile sömürürüz. Diyelim ki bir sorgu hazırladık ve gönderdik ama bize hata döndürdü. İşte burada Error-Based SQLi vardır. Biz de sorguyu düzenleyip aktif etmeye çalışırız.

Bir diğer alt başlığımızda Union-Based SQLi

Union-Based SQLi birden fazla select sorgusu ile çalışır. Biz sorguları göndeririz ve tek bir sonuç olarak birleşir.





2-Inferential SQLi Nedir?




Inferential SQLi biraz daha farklı. Sonuç almak uzun sürecektir ama daha tehlikelidir. Bir farklılıkta error almayız. Sonuçlara göre veri tabanı yapılandırılır.

Alt başlığı Based Blind SQLi

Bu kez hata alınmaz. Sorgu için doğru ya da yanlış sonuçları döner. Sorgu yeniden yapılandırılır.

Time-Based Blind SQLi de bu kısımda bir alt başlık. Time-Based Blind SQLi timedan da anlarsınız ki bir süre belirlenir. Söz konusu sürede geri dönüş gelirse sorgu başarılıdır.



3-Out-of-Band SQLi




Bu kez iş biraz daha sunucuyla alakalı oluyor. Sorguyu siteden gönderirsek başka bir yerden alırız. Kısaca böyle düşünebilirsiniz.

Hiç karşılaşmadım şuana kadar ama bu da bir zafiyet.



Şimdi uygulama adımına geçelim. Uygulama için zafiyet barındıran bir makine kullanıyorum.
Aslında bWAPP kullanacaktım fakat kurulum hataları oldu. Web For Pentester kullanacağım.

Web For Pentester kurulumunu farklı bir konu ile anlatacağım bugün yarın açarım onu da.


Kali Linuxda sayfayı açıyorum

olmz3mo.png


Sql bölümünde ilk örneğe gidiyorum.
Şunu da söyleyeyim ki eğer bir sorun olmazsa bu örneklerin hepsini teker teker çözeceğiz.
İlk sayfaya tıklayınca beni bir sayfa karşılıyor.

nq8gvvb.png


Sayfada bize verilmiş bir tablo var ve biz linke odaklanıyoruz. Aklınıza direkt sonuna " veya ' koymak gelebilir. Biz bunu yapmıyoruz.
Sitede bir zafiyet olduğunu biliyoruz çünkü. Tabi ki zafiyeti bulmak istiyorsanız bu konudan yardım alabilirsiniz.

Biz bu açığı sömürmek için payload kullanacağız. Payloadları nerden bulmak için bir site var. Sql injection payload list şeklinde aratmanız yeterli olacak.

Her açığı istismar ederken elimizle girmeyeceğiz ilk seferinde giriyoruz mantığı oturtmak için. Bulduğunuz listedeki payloadların hepsi çalışmayacaktır. Bunun için teker teker denemek gerekiyor.

g6bth0x.png


Peki bulduğumuz listedeki payloadları nasıl kullanacağız. Linkin sonuna ekleyerek. root yazısını sile de bilirsiniz öyle kaladabilir.
Ben baya bir denedim payload sonunda bir tane buldum oda yukarıda var zaten. Şimdi gelelim sonuca. Bize veri tabanında ki bilgileri gösterdi. Peki payload bunu nasıl yaptı. Bunu da 2. bölümde göreceğiz.
Manuel olarak böyle yaptık peki ya araç ile. Bir çoğunuzun aklına sqlmap gelmiştir. Şimdi de sqlmap ile sömürmeye çalışalım.

rdvanci.png


Terminali açalım ve başlayalım.

el0vg73.png



yazıyorum ve şu an işlem başladı.


8z4uvm0.png


iki sonuç döndü information_schema hemen hemen hepsinden vardır. Biz exercises ile ilgileniyoruz.
Bunun için;

lojv0vd.png


çalıştırıyorum ve tekrar işlemeye başladı.

f16o280.png


Bize tablo olarak sadece users döndürdü. Şimdi kolonları çekeceğiz.
Bunun için;


komutunu girdim ve aşağıdaki sonucu aldık.

17k6mm6.png


kolonları aldık. Şimdi ise kolonların içindeki bilgilere ulaşmamız gerekiyor.
Bunun için linke -C age,groupid,id,name,passwd --dump bölümü ekliyorum. Biz bütün kolonları yazdık ama sadece istediklerimize de yazabilirdik.
Tüm bilgiler için hepsini dump ediyoruz ve enter yaptık.

fcenq5n.png


Şimdi bilgiler döküldü.
Web sayfasından aldığımız sonuçları şimdi ise terminalden aldık. Hedefi sqlmal ile de sömürdük.
Hepsi bu kadar kolay olmayacak araya waf girenler olacak.
Söylediğim gibi bu konunun ilerleyen kısımlarında her birine deyineceğim.

bir sonraki konuda görüşmek üzere


iyi forumlar diliyorum
Ellerine saglik
 

Wixstra

Katılımcı Üye
10 Mar 2021
311
183
Google
herkese selam olsun

SQL Injection Nedir?


SQL Injection en basit tanımı ile bir kod enjekte olayıdır.
Siteden veri tabanına sorgular gider. Biz de bu sorgulara kendi kodlarımızı ekleyerek veri tabanından bilgi çekmeye çalışırız.
SQL Injection türlere ayrılır bunlardan aşağıda bahsettim umarım faydalı olur.

SQL Injection Nerelerde Karşımıza Çıkar?


SQL Injection en çok elbette giriş panellerinde karşımıza çıkar.
Web sayfalarında veri tabanına sorgu giden her yerde olma ihtimali var.

Şunu da eklemek istiyorum ki bu konunun birinci kısmıdır.


İyi okumalar diliyorum...





SQL Injection Türleri Ana Başlıklar



In-Band SQLi

Inferential SQLi

Out-of-Band SQLi



1-In-Band SQLi Nedir?




In-Band SQLi sorgularımızı gönderdiğimiz yerden aldığımız türdür.

Yani bizim açığı bulduğumuz sayfada işlem yapmamızdır. Diyelim ki açığı neutrontht.com/welcome sayfasında bulduk. İşlemleri de bu sayfadan yapar ve bu sayfadan dönüt alırız. Aslında en çok kullanılan yöntemde budur.

Error-Based SQLi de bu ana başlığın bir alt dalıdır.
Error-Based SQLi

hatalar ile sömürürüz. Diyelim ki bir sorgu hazırladık ve gönderdik ama bize hata döndürdü. İşte burada Error-Based SQLi vardır. Biz de sorguyu düzenleyip aktif etmeye çalışırız.

Bir diğer alt başlığımızda Union-Based SQLi

Union-Based SQLi birden fazla select sorgusu ile çalışır. Biz sorguları göndeririz ve tek bir sonuç olarak birleşir.





2-Inferential SQLi Nedir?




Inferential SQLi biraz daha farklı. Sonuç almak uzun sürecektir ama daha tehlikelidir. Bir farklılıkta error almayız. Sonuçlara göre veri tabanı yapılandırılır.

Alt başlığı Based Blind SQLi

Bu kez hata alınmaz. Sorgu için doğru ya da yanlış sonuçları döner. Sorgu yeniden yapılandırılır.

Time-Based Blind SQLi de bu kısımda bir alt başlık. Time-Based Blind SQLi timedan da anlarsınız ki bir süre belirlenir. Söz konusu sürede geri dönüş gelirse sorgu başarılıdır.



3-Out-of-Band SQLi




Bu kez iş biraz daha sunucuyla alakalı oluyor. Sorguyu siteden gönderirsek başka bir yerden alırız. Kısaca böyle düşünebilirsiniz.

Hiç karşılaşmadım şuana kadar ama bu da bir zafiyet.



Şimdi uygulama adımına geçelim. Uygulama için zafiyet barındıran bir makine kullanıyorum.
Aslında bWAPP kullanacaktım fakat kurulum hataları oldu. Web For Pentester kullanacağım.

Web For Pentester kurulumunu farklı bir konu ile anlatacağım bugün yarın açarım onu da.


Kali Linuxda sayfayı açıyorum

olmz3mo.png


Sql bölümünde ilk örneğe gidiyorum.
Şunu da söyleyeyim ki eğer bir sorun olmazsa bu örneklerin hepsini teker teker çözeceğiz.
İlk sayfaya tıklayınca beni bir sayfa karşılıyor.

nq8gvvb.png


Sayfada bize verilmiş bir tablo var ve biz linke odaklanıyoruz. Aklınıza direkt sonuna " veya ' koymak gelebilir. Biz bunu yapmıyoruz.
Sitede bir zafiyet olduğunu biliyoruz çünkü. Tabi ki zafiyeti bulmak istiyorsanız bu konudan yardım alabilirsiniz.

Biz bu açığı sömürmek için payload kullanacağız. Payloadları nerden bulmak için bir site var. Sql injection payload list şeklinde aratmanız yeterli olacak.

Her açığı istismar ederken elimizle girmeyeceğiz ilk seferinde giriyoruz mantığı oturtmak için. Bulduğunuz listedeki payloadların hepsi çalışmayacaktır. Bunun için teker teker denemek gerekiyor.

g6bth0x.png


Peki bulduğumuz listedeki payloadları nasıl kullanacağız. Linkin sonuna ekleyerek. root yazısını sile de bilirsiniz öyle kaladabilir.
Ben baya bir denedim payload sonunda bir tane buldum oda yukarıda var zaten. Şimdi gelelim sonuca. Bize veri tabanında ki bilgileri gösterdi. Peki payload bunu nasıl yaptı. Bunu da 2. bölümde göreceğiz.
Manuel olarak böyle yaptık peki ya araç ile. Bir çoğunuzun aklına sqlmap gelmiştir. Şimdi de sqlmap ile sömürmeye çalışalım.

rdvanci.png


Terminali açalım ve başlayalım.

el0vg73.png



yazıyorum ve şu an işlem başladı.


8z4uvm0.png


iki sonuç döndü information_schema hemen hemen hepsinden vardır. Biz exercises ile ilgileniyoruz.
Bunun için;

lojv0vd.png


çalıştırıyorum ve tekrar işlemeye başladı.

f16o280.png


Bize tablo olarak sadece users döndürdü. Şimdi kolonları çekeceğiz.
Bunun için;


komutunu girdim ve aşağıdaki sonucu aldık.

17k6mm6.png


kolonları aldık. Şimdi ise kolonların içindeki bilgilere ulaşmamız gerekiyor.
Bunun için linke -C age,groupid,id,name,passwd --dump bölümü ekliyorum. Biz bütün kolonları yazdık ama sadece istediklerimize de yazabilirdik.
Tüm bilgiler için hepsini dump ediyoruz ve enter yaptık.

fcenq5n.png


Şimdi bilgiler döküldü.
Web sayfasından aldığımız sonuçları şimdi ise terminalden aldık. Hedefi sqlmal ile de sömürdük.
Hepsi bu kadar kolay olmayacak araya waf girenler olacak.
Söylediğim gibi bu konunun ilerleyen kısımlarında her birine deyineceğim.

bir sonraki konuda görüşmek üzere


iyi forumlar diliyorum
Ellerine Sağlık(Bu Konu İle aynı Onlarca Konu var Formda Bunun yerine Konusu Daha acılmamış ve ya yetersiz olan Konuların Daha İyisini Acmak Daha iyi olur)
 

raistaron

Katılımcı Üye
8 Tem 2020
708
315
neutron
Ellerine Sağlık(Bu Konu İle aynı Onlarca Konu var Formda Bunun yerine Konusu Daha acılmamış ve ya yetersiz olan Konuların Daha İyisini Acmak Daha iyi olur)
Öncelikle teşekkürler
Tavsiyen oldukça güzel ama bu konunun formatı bir rehber şeklinde konu içinde de yazdım. Forumda genelde tek tek konular halinde dağınık bir düzen var ama ben burada ki amacım SQLi sırası ile bölümler ile tamamına ulaştırmak. Umarım anlamışsındır :) iyi forumlar

Teşekkürler
 

Wixstra

Katılımcı Üye
10 Mar 2021
311
183
Google
Öncelikle teşekkürler
Tavsiyen oldukça güzel ama bu konunun formatı bir rehber şeklinde konu içinde de yazdım. Forumda genelde tek tek konular halinde dağınık bir düzen var ama ben burada ki amacım SQLi sırası ile bölümler ile tamamına ulaştırmak. Umarım anlamışsındır :) iyi forumlar
Anladım Daha İleri Seviye Bekliyorum Ellerine Sağlık.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.