NELER ÖĞRENECEĞİZ?
-Veri giriş alanlarının belirlenmesi
-Veri akışı
-SQL injection tespiti
-SQL injection sonlandırma
-Dize birleştirme
-SQL injection sırasında veri akışI
Öncelikle biraz bilgilerimizi tazeliyelim SQL İNJECTİON ne demek
SQL İNJECTİON
Birçok site bildiğimiz gibi veri tabanlarında güçlü bir kaynak ister.MySQL, MSSQL, Sqlite, Oracle SQL Sorgu dilleri aynı zamanda güncel bir veritabanı yazmak içinde kullanılır
-VERİ GİRİŞ ALANLARININ BELİRLENMESİ
İlk olarak WİRESHARK programı kullanarak veri giriş alanlarını belirleyelim.
Programımızı açtık
WLAN yazan kısım hem bizim internet trafiğimizi hemde bağlanmak istediğimiz bir internet site trafiği(PAKET TRAFİĞİ)'ni takip etmemize yardımcı olan bir program
ŞİMDİ SIRA İŞLEME KOYMAKTA
1-SQL açıklı bir site bulalım .Bunun için ilk olarak dork aratıcaz ve uygun sql açıklı site bulucaz.
YARDIMCI PROGRAMLAR
1-ATSCAN(dork burda aratılıcak)
2-SQL MAP(site veri tabanına erişim sağlayacak)
BAŞLANGIÇ
DORK:detail.php?id=
SİTE:Katoomba Group PES Learning Tools
Şimdi siteyi dinlemeye başlıyalım bunu için siteye ilk olark ping atıp wireshark ile veri giriş alanlarını belirleyelim
Ping işlemini durdurmadan wireshark programına geçiş yapalım
KISIM-1:FİLİTREME SEÇENEKLERİNİN BULUNDUĞU KISIM
KISIM-2:YAKALANAN PAKETLERİ LİSTELER
KISIM-3:SEÇTİĞİN PAKETİN DETAYINI GÖSTEREN KISIMDIR
KISIM-4:SEÇİLEN PAKETLERİN HEX DUMP HALİNİ GÖSTERİR(HEX DUMP : içe aktarılmış hali)
KISIM-5:Yakalanan toplam paket
Görüntülenen paket sayısı
Profil ismi
SQL AÇIK TESPİTİ
SQL Açığı tespit olayı diğer açık tespitlerine göre daha kolaydır bunu ister kendi kullandığınız programa düşürerek örn:ATSCAN bulabilirsiniz
Yukarıdaki işlem sizin biraz daha vaktinizi harcar.Ama dikkat ettiyseniz konu başında SQL veri tabanı ile yazılmış siteler açık kodlu olur.Bunu tespit ettiğimiz sitede görmüştük
Evet sitemiz sql veri tabanı dili ile yazılmış ve kodlamada yanlışlıklar var bunu tespit etmiş olduk
Peki şimdi sitenin veri tabanına erişmeye çalışalım
1-Adet site şeması tespit ettik
2-Şimdi bulunan şemanın içine girelim
Tespit ettiğimiz sitede bundan sonraki işlemlerimiz
1-KOLON SAYISI
2-SİTE ŞEMASI
3-VERİ TABANI ERİŞİMİ OLUCAKTIR.
DİZE BİRLEŞTİRME
Dize birleştirme sql injection açıklarını dizeleri doğru sıralama anlamında kullanılır.SQL Kullanımı kolay aynı zamanda çabuk zarar görebilen bir dil olduğu için dize birleştirme işi o kadar da zor olmasa gerek
+Php dilindeki en temel yöntemi mysql_real_escape_string fonksiyonudur.Bu fonksiyon gelen değerden escape karakterleri (',/ vb.) temizleyerek web sitesini temel düzeyde sql injectionlara karşı korur.
SQL İNJECTİON SIRASINDA VERİ AKIŞI
-İlk paket taşıma verilerine bakarsak sitemize sql injection ile giriş yapmadan önce 2266 aktif paket vardı .Son resimde ise sql injection sırasında veri akışını inceleyelim.
-Normal Akış=2266
-SQL Akışı=747362
olarak hesaplanmış yani.SQL İNJECTİON esnasında siteye daha çok paket yollanıp bunu cevaplanması beklenirken bir yandan'da açık zafiyetinden faydalanım site şemalarını çekmeye başlamış
-Veri giriş alanlarının belirlenmesi
-Veri akışı
-SQL injection tespiti
-SQL injection sonlandırma
-Dize birleştirme
-SQL injection sırasında veri akışI
Öncelikle biraz bilgilerimizi tazeliyelim SQL İNJECTİON ne demek
SQL İNJECTİON
Birçok site bildiğimiz gibi veri tabanlarında güçlü bir kaynak ister.MySQL, MSSQL, Sqlite, Oracle SQL Sorgu dilleri aynı zamanda güncel bir veritabanı yazmak içinde kullanılır
-VERİ GİRİŞ ALANLARININ BELİRLENMESİ
İlk olarak WİRESHARK programı kullanarak veri giriş alanlarını belirleyelim.
Programımızı açtık
WLAN yazan kısım hem bizim internet trafiğimizi hemde bağlanmak istediğimiz bir internet site trafiği(PAKET TRAFİĞİ)'ni takip etmemize yardımcı olan bir program
ŞİMDİ SIRA İŞLEME KOYMAKTA
1-SQL açıklı bir site bulalım .Bunun için ilk olarak dork aratıcaz ve uygun sql açıklı site bulucaz.
YARDIMCI PROGRAMLAR
1-ATSCAN(dork burda aratılıcak)
2-SQL MAP(site veri tabanına erişim sağlayacak)
BAŞLANGIÇ
DORK:detail.php?id=
SİTE:Katoomba Group PES Learning Tools
Şimdi siteyi dinlemeye başlıyalım bunu için siteye ilk olark ping atıp wireshark ile veri giriş alanlarını belirleyelim
Ping işlemini durdurmadan wireshark programına geçiş yapalım
KISIM-1:FİLİTREME SEÇENEKLERİNİN BULUNDUĞU KISIM
KISIM-2:YAKALANAN PAKETLERİ LİSTELER
KISIM-3:SEÇTİĞİN PAKETİN DETAYINI GÖSTEREN KISIMDIR
KISIM-4:SEÇİLEN PAKETLERİN HEX DUMP HALİNİ GÖSTERİR(HEX DUMP : içe aktarılmış hali)
KISIM-5:Yakalanan toplam paket
Görüntülenen paket sayısı
Profil ismi
SQL AÇIK TESPİTİ
SQL Açığı tespit olayı diğer açık tespitlerine göre daha kolaydır bunu ister kendi kullandığınız programa düşürerek örn:ATSCAN bulabilirsiniz
Yukarıdaki işlem sizin biraz daha vaktinizi harcar.Ama dikkat ettiyseniz konu başında SQL veri tabanı ile yazılmış siteler açık kodlu olur.Bunu tespit ettiğimiz sitede görmüştük
Evet sitemiz sql veri tabanı dili ile yazılmış ve kodlamada yanlışlıklar var bunu tespit etmiş olduk
Peki şimdi sitenin veri tabanına erişmeye çalışalım
Kod:
sqlmap -u hedefsite.com/aratılandork --dbs
1-Adet site şeması tespit ettik
2-Şimdi bulunan şemanın içine girelim
Kod:
sqlmap -u hedefsite.com/aratılandork -D site_veritabanı --tables
1-KOLON SAYISI
2-SİTE ŞEMASI
3-VERİ TABANI ERİŞİMİ OLUCAKTIR.
DİZE BİRLEŞTİRME
Dize birleştirme sql injection açıklarını dizeleri doğru sıralama anlamında kullanılır.SQL Kullanımı kolay aynı zamanda çabuk zarar görebilen bir dil olduğu için dize birleştirme işi o kadar da zor olmasa gerek
+Php dilindeki en temel yöntemi mysql_real_escape_string fonksiyonudur.Bu fonksiyon gelen değerden escape karakterleri (',/ vb.) temizleyerek web sitesini temel düzeyde sql injectionlara karşı korur.
SQL İNJECTİON SIRASINDA VERİ AKIŞI
-İlk paket taşıma verilerine bakarsak sitemize sql injection ile giriş yapmadan önce 2266 aktif paket vardı .Son resimde ise sql injection sırasında veri akışını inceleyelim.
-Normal Akış=2266
-SQL Akışı=747362
olarak hesaplanmış yani.SQL İNJECTİON esnasında siteye daha çok paket yollanıp bunu cevaplanması beklenirken bir yandan'da açık zafiyetinden faydalanım site şemalarını çekmeye başlamış
Son düzenleme:
