Güvenlik Testi - Enjeksiyon

Enjeksiyon tekniği, uygulamanın giriş alanlarını kullanarak bir SQL sorgusu veya komutun enjekte edilmesinden oluşur.

Web Uygulaması - Enjeksiyon

Başarılı bir SQL enjeksiyonu, hassas verileri veritabanından okuyabilir, değiştirebilir ve ayrıca bir veritabanından verileri silebilir. Ayrıca, bilgisayar korsanının veritabanı üzerinde DBMS'yi kapatma / veritabanlarını bırakma gibi idari işlemleri gerçekleştirmesine de olanak tanır.

Bu kusurun Tehdit Ajanlarını, Saldırı Vektörlerini, Güvenlik Zafiyetini, Teknik Etkisini ve İş Etkilerini basit bir şema yardımıyla anlayalım.

Örnekler

Uygulama, aşağıdaki savunmasız SQL çağrısının oluşturulmasında güvenilmeyen verileri kullanır -

String query = "SELECT * FROM EMP WHERE EMPID = '" + request.getParameter("id") + "'";

Uygulamalı

Step 1 - Aşağıda gösterildiği gibi uygulamanın SQL Enjeksiyon alanına gidin.

Step 2- Egzersizde verildiği gibi, kimlik doğrulamasını atlamak için String SQL Injection kullanıyoruz. Doğru şifreyi kullanmadan patron ('Neville') olarak oturum açmak için SQL enjeksiyonunu kullanın. Neville'in profilinin görüntülenebildiğini ve tüm işlevlerin (Ara, Oluştur ve Sil dahil) kullanılabilir olduğunu doğrulayın.

Step 3 - Parametreyi 'a' = 'a' veya 1 = 1 olarak göndererek şifreyi atlayabileceğimiz bir SQL enjekte edeceğiz

Step 4 - Kötüye Kullanım Sonrası, aşağıda gösterildiği gibi Yönetici olan Neville olarak giriş yapabiliyoruz.

SQL Enjeksiyonunu Önleme

SQL enjeksiyonunu önlemenin birçok yolu vardır. Geliştiriciler kodu yazarken, özel karakterleri buna göre işlemelerini sağlamalıdırlar. OWASP'de kesinlikle geliştiriciler için bir kılavuz olan hile sayfaları / önleme teknikleri bulunmaktadır.

  • Parametreli Sorguları Kullanma
  • Kullanıcı Tarafından Sağlanan Tüm Girişlerden Kaçış
  • Son kullanıcılar için veritabanı için En Az Ayrıcalığı etkinleştirin