Akblog-V5.7Tema
1505418113571169708

SQL Injection Nedir

SQL Injection Nedir
Yorum Ekle
21 Nisan 2021

SQL Injection Nedir? Nasıl Gerçekleştirilir?

SQL Injection (SQLi), kötü amaçlı SQL ifadelerinin yürütülmesini mümkün kılan bir enjeksiyon saldırısı türüdür. Bu ifadeler, bir web uygulamasının arkasındaki veritabanı sunucusunu denetler. Saldırganlar, uygulama güvenlik önlemlerini atlamak için SQL Injection güvenlik açıklarını kullanabilir. Bir web sayfasının veya web uygulamasının kimlik doğrulaması ve yetkilendirmesi etrafında dolaşabilir ve tüm SQL veritabanının içeriğini alabilirler. Ayrıca veritabanına kayıt eklemek, değiştirmek ve silmek için SQL Injection kullanabilirler.SQL Injection güvenlik açığı, MySQL, Oracle, SQL Server veya diğerleri gibi SQL veritabanı kullanan herhangi bir web sitesini veya web uygulamasını etkileyebilir. Suçlular bunu hassas verilerinize yetkisiz erişim elde etmek için kullanabilir: müşteri bilgileri, kişisel veriler, ticari sırlar, fikri mülkiyet ve daha fazlası. SQL Injection saldırıları en eski, en yaygın ve en tehlikeli web uygulaması güvenlik açıklarından biridir. OWASP kuruluşu (Open Web Application Security Project) OWASP Top 10 2017 belgelerindeki enjeksiyonları web uygulama güvenliğine bir numaralı tehdit olarak listeliyor.



SQL sorgusu nedir?

SQL, her kullanıcı için özelleştirilebilir veri görünümleri oluşturmak üzere veritabanlarına erişmek ve bunları yönetmek için kullanılan standartlaştırılmış bir dildir. SQL sorguları veri alma, güncelleme ve kayıt kaldırma gibi komutları yürütmek için kullanılır. Farklı SQL öğeleri bu görevleri gerçekleştirir, örneğin, kullanıcı tarafından sağlanan parametrelere dayalı olarak verileri almak için SELECT deyimini kullanan sorgular.

SQL Injection Türleri

SQL Injectionları genellikle üç kategoriye ayrılır: Bant içi SQLi (Klasik), Çıkarımsal SQLi (Kör) ve Bant Dışı SQLi. SQL Injection türlerini, arka uç verilerine erişmek için kullandıkları yöntemlere ve hasar potansiyellerine göre sınıflandırabilirsiniz.

1. Bant içi Sql

Saldırgan, saldırılarını başlatmak ve sonuçlarını toplamak için aynı iletişim kanalını kullanır. Bant içi SQLi'nin sadeliği ve verimliliği, onu en yaygın SQLi saldırısı türlerinden biri haline getirir. Bu yöntemin iki alt varyasyonu vardır:

Hata tabanlı SQL — saldırgan, veritabanının hata iletileri üretmesine neden olan eylemler gerçekleştirir. Saldırgan, veritabanının yapısı hakkında bilgi toplamak için bu hata iletileri tarafından sağlanan verileri kullanabilir.

Birliğe dayalı SQL —Bu teknik, tek bir HTTP yanıtı almak için veritabanı tarafından oluşturulan birden çok seçme ifadeyi birleştiren UNION SQL işlecinden yararlanır. Bu yanıt, saldırgan tarafından kullanılabilecek veriler içerebilir.

2. Çıkarımsal (Kör) Sql

Saldırgan, sunucuya veri yükleri gönderir ve yapısı hakkında daha fazla bilgi edinmek için sunucunun yanıtını ve davranışını gözlemler. Veriler web sitesi veritabanından saldırgana aktarılmadığından bu yöntem kör SQLi olarak adlandırılır, böylece saldırgan bant içi saldırı hakkında bilgi göremez. Kör SQL Injectionları, sunucunun yanıtına ve davranış kalıplarına dayanır, bu nedenle yürütülmesi genellikle yavaştır, ancak aynı derecede zararlı olabilir. 

3. Kör SQL Injectionları aşağıdaki gibi sınıflandırılabilir:

Boolean — saldırganın veritabanına bir SQL sorgusu göndererek uygulamanın bir sonuç döndürmesini ister. Sonuç, sorgunun doğru veya yanlış olmasına bağlı olarak değişir. Sonuca dayanarak, HTTP yanıtı içindeki bilgiler değişecek veya değişmeden kalacaktır. Saldırgan, ileti doğru veya yanlış bir sonuç oluşturduysa bu sorunu çözebilir.

Zamana dayalı —attacker veritabanına bir SQL sorgusu gönderir, bu da veritabanının tepki vermeden önce beklemesini sağlar (saniyeler içinde). Saldırgan, bir sorgunun doğru veya yanlış olup olmadığını, veritabanının yanıt verdiği andan itibaren görebilir. Sonuca dayanarak, anında veya bir bekleme süresinden sonra bir HTTP yanıtı oluşturulur. Böylece saldırgan, kullandıkları iletinin veritabanındaki verilere dayanmadan doğru veya yanlış döndürdüğü takdirde çalışabilir.

SQL Injection Saldırısı Nasıl ve Neden Gerçekleştirilir?

SQL Injection saldırısı yapmak için, saldırganın önce web sayfası veya web uygulaması içinde savunmasız kullanıcı girdileri bulması gerekir. SQL Injection güvenlik açığı olan bir web sayfası veya web uygulaması, bu tür kullanıcı girişlerini doğrudan bir SQL sorgusunda kullanır. Saldırgan giriş içeriği oluşturabilir. Bu tür içeriğe genellikle kötü amaçlı yük denir ve saldırının anahtar parçasıdır. Saldırgan bu içeriği gönderdikten sonra, veri tabanında kötü amaçlı SQL komutları yürütülür. SQL, ilişkisel veri tabanlarında depolanan verileri yönetmek için tasarlanmış bir sorgu dilidir. Verilere erişmek, değiştirmek ve silmek için kullanabilirsiniz. Birçok web uygulaması ve web sitesi tüm verileri SQL veri tabanlarında depolar. Bazı durumlarda, işletim sistemi komutlarını çalıştırmak için SQL komutlarını da kullanabilirsiniz. Bu nedenle, başarılı bir SQL Injection saldırısının çok ciddi sonuçları olabilir.

  • Saldırganlar, veri tabanındaki diğer kullanıcıların kimlik bilgilerini bulmak için SQL Injectionlarını kullanabilir. Daha sonra bu kullanıcıları taklit edebilirler. Kimliğe bürünülen kullanıcı, tüm veritabanı ayrıcalıklarına sahip bir veri tabanı yöneticisi olabilir.
  • SQL, veritabanından veri seçmenize ve çıktı almanıza olanak tanır. SQL Injection güvenlik açığı, saldırganın bir veritabanı sunucusundaki tüm verilere tam erişim sağlamasına izin verebilir.
  • SQL ayrıca bir veritabanındaki verileri değiştirmenize ve yeni veriler eklemenize olanak tanır. Örneğin, bir finansal uygulamada, bir saldırgan dengeleri değiştirmek, işlemleri geçersiz kılmak veya hesaplarına para aktarmak için SQL Injection kullanabilir.
  • Bir veri tabanından kayıtları silmek, hatta tabloları bırakmak için SQL'i kullanabilirsiniz. Yönetici veritabanı yedeklemeleri yapsa bile, verilerin silinmesi veri tabanı geri yükleninceye kadar uygulamanın kullanılabilirliğini etkileyebilir. Ayrıca, yedeklemeler en son verileri kapsamayabilir.
  • Bazı veritabanı sunucularında, veri tabanı sunucusunu kullanarak işletim sistemine erişebilirsiniz. Bu kasıtlı veya kazara olabilir. Bu durumda, bir saldırgan ilk vektör olarak bir SQL Injectionu kullanabilir ve ardından bir güvenlik duvarının arkasındaki dahili ağa saldırabilir.


Kaynak: berkeajans

AK SEO

2007-2022 Dijital Pazarlama İnternet Hizmetleri
Bilişim dünyasında 2005 yılından itibaren aktif olarak çalışmalarımızı yoğun bir şekilde yürütüyoruz. Grafik Çalışmaları | E-ticaret, Blog, Kişisel ve Kurumsal Site Yazılımları | Kurumsal Danışmanlık Hizmet Faaliyetleri | için iletişime geçebilirsiniz.
Sponsor: Son Dakika Haber | Siber Güvenlik | Kıdem İhbar Tazminatı | Kıdem Tazminatı