Satın Almak İçin Hemen Ara !
SQL (Yapılandırılmış Sorgu Dili), Yapılandırılmış Sorgu Dili anlamına gelir. Bu dil öncelikle ilişkisel veritabanlarıyla etkileşim için geliştirilmiştir. İstenilen verilere erişmek, eklemek, değiştirmek veya sorgulamak için kullanılan SQL; Microsoft SQL Server, Oracle, IBM DB2, MySQL gibi ilişkisel veritabanlarının komut ve kontrol dilidir. Modern web geliştirmede, ilişkisel veritabanları PHP, .NET, Java EE, Hibernate, SQLite gibi betik dillerinde yazılmış web uygulamalarının ve içerik yönetim sistemlerinin arka ucu için önemli bir kaynaktır.
SQL enjeksiyonu veya SQLi olarak bilinen bir siber saldırı türü, web sayfası ve web uygulaması güvenlik önlemlerini atlayabilen bir bilgisayar korsanlığı tekniğidir. SQL enjeksiyonunu kullanmak için saldırganları cezbedin; bu, önemli veri hazinelerinin cazibesidir. Bilgisayar korsanları bu saldırı tekniğini kullanarak SQL veritabanlarının içeriğini ele geçirebilir, değiştirebilir ve silebilir.
Silme, değiştirme, yedekleme, sisteme virüs ekleme, işlemleri aksatma vb. amaçlarla SQL Injection, uygulamanın client tarafında SQL sorgu girdisi ekleyerek veya enjekte ederek yapılır.
SQL enjeksiyonu için, bir saldırganın bir web uygulamasında veya web sayfasında savunmasız bir giriş bulması gerekir.
SQL enjeksiyonu, veriler güvenilmeyen bir kaynaktan bir programa girdiğinde ve bu veriler dinamik olarak SQL sorguları oluşturmak için kullanıldığında gerçekleşir. Saldırganın veritabanı mimarisini anlaması ve uygulamanın güvenlik bilgilerine erişmesi için yanıt gereklidir. Bir bilgisayar korsanı, özel hazırlanmış SQL komutlarını kullanarak veritabanındaki tüm bilgilere erişebilir ve veritabanı yapısı hakkında net bir fikir veren yanıtlar alabilir. SQL, kontrol ve veri düzlemleri arasında ayrım yapmadığından, bir saldırgan meta karakterler (alt çizgi _ gibi veri olarak yorumlanmayan karakterler) ekleyebilir.
Kullanıcı tarafından gönderilen herhangi bir veri, SQL enjeksiyonu sayesinde bir veritabanına sızmak için kullanılabilir. Bu saldırı yöntemi, daha sonra veritabanına iletilen formlar aracılığıyla kötü amaçlı girdi göndermeyi içerir. Uygulamalar herhangi bir form verisini temizlemeden kabul ederse, bir saldırgan veritabanındaki bilgileri kopyalayabilir, Değiştirebilir veya silebilir.
SQL enjeksiyonu, bir bilgisayar korsanının sisteme kötü amaçlı SQL kodu enjekte etmek için bir web sitesinin veritabanı dosyalarını değiştirmesidir. Bu tür enjeksiyon, en yaygın olarak çerez tabanlı SQL enjeksiyonunda görülür. Bir bilgisayar korsanı, kodu veri tabanının arka ucuna bile enjekte etmek için bir çerezi manipüle edebilir. Bu teknik, gelecekteki sorguları veritabanına karşı zehirlemelerine ve etkili bir şekilde ele geçirmelerine olanak tanır.
SQL enjeksiyonu, HTTP protokolünden gelen başlıklar kullanılarak gerçekleştirilebilir. Rastgele SQL kullanan sahte başlıklar oluşturmak ve bir veritabanını kendi veritabanına kodu kabul etmeye zorlamak, SQL enjeksiyonu ile gerçekleştirilebilir.
En gelişmiş SQL enjeksiyon saldırıları, ikinci dereceden SQL enjeksiyonudur. Bu araçlar, verileri yok etmeye çalışmadan önce uzun süre uykuda kalabilir. Ek olarak, bu araçlar bir durumda zararsız görünen ancak başka bir durumda kötü niyetli görünen toksik verileri kullanabilir. Geliştiriciler, uygulamalardaki tüm oturumları kaldırsalar bile, ikinci dereceden SQL enjeksiyon saldırılarına karşı savunmasız olabilirler.
Bant içi SQL enjeksiyonları en yaygın saldırı türüdür. Aynı iletişim kanalını kullanırlar ve iki farklı biçimde gelirler.
Uygulama veritabanları tarafından atılan hata mesajları, hataya dayalı SQL enjeksiyonu için bir temel görevi görür.
Kör SQL enjeksiyonu aynı zamanda çıkarımsal SQL enjeksiyonu olarak da adlandırılır. Saldırganın kötü amaçlı bir yük göndermesi ve veritabanının yapısını belirlemek için sonuçları gözlemlemesi sürecidir. Bu iki biçimde gerçekleşir:
Saldırgan, bir uygulamaya belirli yükler gönderirken, dosyayı DOĞRU veya YANLIŞ olarak yanıt vermeye zorlayarak dosyanın gerçek sonuçlar döndürüp döndürmediğini belirleyebilir. Bu sorgunun sonucu Boolean tabanlıdır.
Bir program genel bir hata mesajı verdiğinde, genellikle kullanılan yaklaşım zamana dayalı bir SQL enjeksiyonudur. Bu SQL korsanlığı yöntemine zamana dayalı denir ve veritabanına zamanlanmış sorgular göndermeyi içerir. Saldırgan bu taktiği uygulayarak bir sorgunun doğruluğunu veya yanlışlığını belirler. Bunun nedeni, bekleme sürelerinin veritabanını isteği kabul etmeye veya reddetmeye zorlamasıdır.