Hoşgeldin Misafir

SQL Enjeksiyon Türleri (SQLi)

CyberHawk

CyberHawk

WebMaster
Adana
12 Ara 2018
16,070 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Sql injection ciddi sorunlara neden olmak için çeşitli şekillerde kullanılabilir. Saldırgan, SQL Injection'dan yararlanarak bir veritabanı içindeki verilere ait kimlik doğrulamasını atlayabilir, erişebilir, değiştirebilir ve silebilir.-


SQL Enjeksiyon üç ana kategoride sınıflandırılabilir - -In- bant SQLi- , -Çıkarımsal SQLi- ve -Bant Dışı SQLi-

ljJNdJ.gif
-




isik-hareketli-resim-0107.gif
-

 Bant içi SQLi (Klasik SQLi)-
Bant içi SQL Enjeksiyonu, SQL Enjeksiyon saldırılarının en yaygın ve kullanımı en kolay olanıdır. Bant içi SQL Enjeksiyonu, bir saldırgan hem saldırıyı başlatmak hem de sonuçları toplamak için aynı iletişim kanalını kullanabildiğinde gerçekleşir. En yaygın iki bant içi SQL Enjeksiyonu türü -Hata tabanlı SQLi- ve -Birlik tabanlı SQLi'dir- .-

a) Hata tabanlı SQLi-
Hata tabanlı SQLi, veritabanının yapısı hakkında bilgi almak için veritabanı sunucusu tarafından atılan hata mesajlarına dayanan bant içi SQL Enjeksiyon tekniğidir. Bazı durumlarda, bir saldırganın tüm veritabanını numaralandırması için tek başına hata tabanlı SQL enjeksiyonu yeterlidir.-

Bir web uygulamasının geliştirme aşamasında hatalar çok yararlı olsa da, canlı bir sitede devre dışı bırakılmalı veya bunun yerine sınırlı erişime sahip bir dosyaya kaydedilmelidir.-
ljJNdJ.gif
-



b) Birlik tabanlı SQLi-
Birlik tabanlı SQLi, iki veya daha fazla SELECT ifadesinin sonuçlarını tek bir sonuçta birleştirmek için UNION SQL operatörünü kullanan ve daha sonra HTTP yanıtının bir parçası olarak döndürülen bir bant içi SQL enjeksiyon tekniğidir.-


isik-hareketli-resim-0107.gif
-

 Çıkarımsal SQLi (Kör SQLi)-
Çıkarımsal SQL Enjeksiyonu, bant içi SQLi'den farklı olarak, bir saldırganın istismar etmesi daha uzun sürebilir, ancak diğer SQL Enjeksiyonları kadar tehlikelidir. Çıkarımsal olmayan bir SQLi saldırısında, web uygulaması üzerinden gerçekte hiçbir veri aktarılmaz ve saldırgan bant içi bir saldırının sonucunu göremez (bu nedenle bu tür saldırılar genellikle “Kör Sql” olarak adlandırılır ) .-

Bunun yerine, bir saldırgan, yükler göndererek, web uygulamasının yanıtını ve veritabanı sunucusunun ortaya çıkan davranışını gözlemleyerek veritabanı yapısını yeniden oluşturabilir. İki tür çıkarımsal SQL Enjeksiyonu, -Kör-boole tabanlı SQLi- ve -Kör-zaman tabanlı SQLi'dir.- .-
ljJNdJ.gif
-



isik-hareketli-resim-0107.gif
-

 Boolean tabanlı (içerik tabanlı) Blind SQLi-
Boole tabanlı SQL Enjeksiyonu, veritabanına SQL sorgusu göndermeye dayanan, sorgunun DOĞRU veya YANLIŞ sonuç döndürüp döndürmediğine bağlı olarak uygulamayı farklı bir sonuç döndürmeye zorlayan çıkarımsal bir SQL Enjeksiyon tekniğidir. HTTP yanıtı değişir veya aynı kalır.-

Bu, veritabanından hiçbir veri döndürülmese de kullanılan yükün doğru veya yanlış döndürmesi durumunda saldırganın çıkarım yapmasına olanak tanır. Bu saldırı genellikle yavaştır (özellikle büyük veritabanlarında), bir saldırganın karakterlerini karaktere göre sıralaması gerekir.-


isik-hareketli-resim-0107.gif
-

 Zamana Dayalı Kör SQLi-
Zamana dayalı SQL Enjeksiyonu, veritabanını yanıt vermeden önce belirli bir süre (saniye cinsinden) beklemeye zorlayan veritabanına bir SQL sorgusu göndermeye dayanan çıkarımsal bir SQL Enjeksiyon tekniğidir. Yanıt süresi saldırgana sorgunun sonucunun DOĞRU veya YANLIŞ olduğunu gösterir. Sonuca bağlı olarak, HTTP yanıtı gecikmeli olarak döndürülür veya hemen döndürülür.-

Bu, veritabanından hiçbir veri döndürülmese de kullanılan yükün doğru veya yanlış döndürmesi durumunda saldırganın çıkarım yapmasına olanak tanır. Bu saldırı genellikle yavaştır (özellikle büyük veritabanlarında), bir saldırganın bir karakter karakter numaralandırması gerekir.-
ljJNdJ.gif
-



isik-hareketli-resim-0107.gif
-

 Bant dışı SQLi--
Bant dışı Sql injection çok yaygın değildir, çünkü çoğunlukla web uygulaması tarafından kullanılan veritabanı sunucusunda etkinleştirilen özelliklere bağlıdır. Bant dışı SQL Enjeksiyonu, bir saldırgan saldırıyı başlatmak ve sonuçları toplamak için aynı kanalı kullanamadığında gerçekleşir, Bant dışı teknikler, saldırgana, özellikle sunucu yanıt verirse, çıkarımsal zaman tabanlı tekniklere bir alternatif sunar-

Bant dışı SQLi teknikleri, veritabanı sunucusunun bir saldırgana veri iletmek için DNS veya HTTP istekleri yapma yeteneğine dayanır.-