SQL Injection Nedir?

İlk kez 1998 yılında keşfedilmiş olan SQL Injection, kritik verileri çalmak ve değiştirmek amacıyla geliştirilmiş olan bir tür siber saldırı çeşididir.

SQL Injection, siber saldırısını anlayabilmek için öncelikli olarak SQL ne demektir? Bunu bilmek gerekiyor. İsterseniz ilk olarak bizde buradan yola çıkarak SQL nedir? Bu soru işaretinin yanıtını vererek başlayalım.

SQL Nedir?

SQL açılım olarak Structured Query Language demektir. Türkçe’de “Yapılandırılmış Sorgu Dili” demektir. Bu dilin geliştirilmesinin nedeni ise ilişkisel veritabanıyla etkileşime geçmek içindir. İhtiyaç duyulan verilere ekleme yapabilme, silebilme, değiştirme ya da sorgulama yapabilme için kullanılır. Microsoft SQL Server, Oracle, IBM DB2 ve MySQL gibi ilişkisel veritabanları için komut ve kontrol dilidir. SQL, internet sitelerinin içerik yönetim sistemi arkasında çalışan önemli bir kaynaktır.

SQLi Nedir?

SQL Injection veya başka bir değişle SQLi siber saldırısı sayesinde internet sitesindeki güvenlik önlemleri atlanmaya çalışılır. Saldırganlar bu yöntemi kullanarak veritabanına ulaşım sağlayabilir ve yapmak istediklerini gerçekleştirebilir.

Bir internet sitesi ya da uygulama Oracle, SQL Server veya MySQL gibi SQL veritabanlarını kullanıyorsa, bu durumda SQL Injection saldırılarına karşı savunmasız konuma gelebilir. Bunun için SQL Injection, firmaların veritabanlarını korumasız bırakabilecek güce sahip olmasıyla bilinmektedir.

Bir bilgisayar korsanı eğer ki bir şirketin internet sitesine sızmış ve verilerini silmeye kalkmışsa verilerin yedekleri olsa bile tekrar veriler yüklenene kadar uygulamanın kullanılabilirliğini de etkileyecektir.

SQL Injection, saldırganlar tarafından çok ciddi tehditler oluşturabilecek kadar etkilidir. Mesela bir örnek vermek gerekiyorsa finansal uygulamada hesap bakiyesini değiştirebilir. Bundan daha da kötü olan şey ise saldırganlar veritabanına kendilerini yönetici yapabilirler.

SQL Injection saldırısında en büyük risk, e-posta adresleridir. Bu yöntemle birlikte e-posta adresinden oturum açılır ve bilgiler çalışılmaya çalışılır. Bunun için SQL Injection yalnızca herhangi bir kurum için değil bireysel kişiler ve müşteriler içinde önemli bir tehdittir.

Blind Sql İnjection Nedir?

Blind Sql İnjection, internet sitesi ya da yazılımda açık olduğu zaman yapılabilecek saldırıya verilen isimdir. Blind Sql İnjection saldırısını gerçekleştiren kişi saldırının sonuçlarını göremez, verileri gösteremez ve indirimez, ancak bu durum web sitesinin veri tabanına yansımaktadır.

SQL-Injection-1

Sql İnjection Nedir Nasıl Yapılır?

Doğru bir şekilde yapılmış ve başarıya ulaşmış olan SQL Injection saldırısı, bilgisayarınızdaki hassas verileri okuyabilir. Yani cihazınızdaki kredi kartı bilgileriniz, e-posta şifreleriniz gibi hassas verilerinizi ele geçirebilir ve müdahale edebilir.

 SQL Injection yapılmasının amacı internet sitesine SQL sorgu girişi ekleyerek ya da enjejkte ederek güvenlik açığı yaratmaktır. Ancak bunun içinde mutlaka güvenlik açığı olan bir giriş bulabilmesi gerekir.

SQL Injection yapabilmek için verilerin güvenilmeyen bir kaynaktan programa girmiş olması gerekir.  Saldırıda bulunan kişinin veritabanı mimarisini anlaması ve uygulama üzerinde güvenli bilgilere erişmesi gerekir. Korsan tarafından özel olarak hazırlanmış bir komutla net fikir elde edilerek veri tabanındaki bilgilere ulaşım sağlanmış olacaktır

Sql İnjection Nedir ve Nasıl Korunulur?

SQL, kontrol düzlemi ile veri düzlemi arasında herhangi bir ayrım yapmadan, saldırgan bir meta karakter yerleştirebilir. SQL Injection, çocukların bile gerçekleştirebileceği bir saldırı türüdür. SQL Injection uygulandıktan sonra hazırlanmış olan kod sayesinde herhangi bir parola bilgisi gerekmeden kimliğin doğrulaması yapılarak atlama yapılır.

SQL Injection farklı şekilde yapılabilir. Aşağıda bu saldırıların nasıl yapıldığı belirtilmiştir.

Kullanıcı girişine dayalı SQL enjeksiyonu: Web uygulamaları, kullanıcının girdilerini; işlenmek üzere veritabanına ileten formlar aracılığıyla kabul eder.  Eğer ki uygulama bu girdileri incelemeden doğrudan kabul ederse bu durumda SQL enjekte edilmiş olabilir.

Çerezlere dayalı SQL enjeksiyonu: Kötü niyetli bir kullanıcı veya bir kullanıcının cihazına dağıtılan kötü amaçlı yazılım.

HTTP başlıklarına dayalı SQL enjeksiyonu: Bir web uygulaması HTTP başlıklarından girdileri kabul ederse, rastgele SQL içeren sahte başlıklar veritabanına kod enjekte edebilir.

İkinci dereceden SQL enjeksiyonu: İkinci dereceden SQL enjeksiyon saldırısı, bir bağlamda iyi huylu olarak kabul edilebilecek ancak başka bir bağlamda kötü amaçlı olan zehirli verilerdir.

Time Based Sql İnjection Nedir?

SQL Injection açıklığı UNION tekniği ile farklı tablolardan veri sızdırmamıza imkan vermiyorsa, ancak injection’ı yaptığımız noktada AND operatörü sonrasında oluşturacağımız TRUE ve FALSE koşullarına karşı farklı yanıtlar üretiyorsa, o halde bir şansımız daha var demektir.

UNION tabanlı veya doğrudan yanıt doğuran yöntemlere nazaran çok daha fazla sayıda istek göndermemiz gerekecektir. Blind SQL Injection yönteminde genellikle veriler harf harf belirlenir ve her bir harfin değerinibulmak için binary search yöntemi kullanılır. Örneğin 0–100 arasında bulunması gereken 83 değerini bulmak için önce değerin 50’den büyük olup olmadığını sorgularsınız, eğer büyükse bu sefer 75’ten büyük olup olmadığını sorgularsınız, bundan da büyükse 88’den büyük olup olmadığını sorgularsınız. Bu sayıdan büyük olmadığı için bu defa 75 ve 88 sayılarının ortasında bulunan 81’den büyük olup olmadığını sorgularsınız ve bu sayı bulununcaya kadar devam eder

SQL Injection Türleri

SQL Injection saldırısını önleyebilmek için dinamik sorgulara izin vermemeniz ya da kötü niyetli olan SQL içeren kullanıcı tarafından sağlanan girdilerin sorgunun mantığını etkilemesini engellemeniz gerekir.

SQL Injection saldırıları içerisinde en popüler olanı In Band yani bant içidir. İki şekilde yapılan bu saldırısı şu şekildedir.

Hata tabanlı (Error-based): Veritabanına atılan bir hata mesajıyla gönderilmektedir.

Union-based: Uygulama saldırılara karşı savunmasız olduğunda saldırganlar UNION anahtar sözcüğünü kullanır.

Temmuz 7, 2021

RFI Açığı Nedir

Haziran 23, 2021

CSRF Nedir

YORUMLAR

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

betvolem.com betlikegir.com anadolu casino wiibet.com restbetcdn.com ebetebet.com bahigogir.com