
yunusatis
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
-
-
- Konu Yazar
- #1
Bu Kullanıcı Forumdan Kalıcı Olarak Yasaklanmıştır.
SQL Injection (SQLi) saldırıları, veritabanı tabanlı uygulamalarda güvenlik açığı yaratmak amacıyla kullanılan en yaygın ve tehlikeli tekniklerden biridir. Bu saldırılar, saldırganların veritabanına zararlı SQL kodu enjekte ederek yetkisiz erişim sağlamasına, veri çalmasına veya sistemleri manipüle etmesine olanak tanır.
Saldırgan, kullanıcı adı veya parola alanına aşağıdaki gibi zararlı bir giriş yapabilir:
Sonuçta ortaya çıkan SQL sorgusu şöyle olacaktır:
Bu sorgu her zaman doğru döner ve saldırganın veritabanına erişim sağlamasına neden olur.
Saldırgan, id parametresine aşağıdaki gibi bir giriş yapabilir:
Sonuçta ortaya çıkan SQL sorgusu şöyle olacaktır:
Bu sorgu, admin tablosundaki kullanıcı adları ve parolaları döndürecektir.
Parametrik Sorgular Kullanma:Parametrik sorgular (prepared statements), SQL sorgularını sabit tutar ve kullanıcı girişlerini ayrı parametreler olarak geçirir. Bu, SQL kodu ile kullanıcı girişlerinin karışmasını önler
ORM (Object-Relational Mapping) Kullanma:ORM araçları, veritabanı işlemlerini programlama diline uygun şekilde yönetir ve SQL Injection riskini azaltır.
Girdi Doğrulama ve Temizleme:Kullanıcı girişlerini sıkı bir şekilde doğrulamak ve zararlı karakterlerden arındırmak, SQL Injection riskini azaltır.
En Az Yetki İlkesi:Veritabanı kullanıcılarına sadece ihtiyaç duydukları minimum yetkileri vermek, saldırganların yetkisiz işlemler yapmasını zorlaştırır.
Web Uygulama Güvenlik Duvarı (WAF):WAF, SQL Injection saldırılarını tespit edip engelleyebilen güvenlik araçlarıdır.
SQL Injection Türleri
SQL Injection saldırıları çeşitli şekillerde gerçekleştirilebilir. İşte bazı yaygın türleri:- Error-Based SQL Injection:Bu tür saldırılar, uygulamanın hata mesajlarını kullanarak veritabanı yapısı hakkında bilgi edinmeyi hedefler. Hatalar, saldırganlara veritabanı tabloları ve sütunları hakkında değerli ipuçları sağlar.
- Union-Based SQL Injection:Bu teknik, birden fazla SELECT ifadesini birleştirerek veritabanından ek bilgi çekmeyi hedefler. UNION operatörü kullanılarak, saldırganlar yetkisiz veri erişimi sağlayabilir.
- Blind SQL Injection:Blind SQLi, uygulamanın hata mesajlarını göstermediği durumlarda kullanılır. Saldırganlar, doğru veya yanlış sorular sorarak veritabanı hakkında bilgi edinirler. İki alt türü vardır:
- Boolean-Based Blind SQLi: Yanıtın doğru mu yanlış mı olduğunu kontrol ederek bilgi toplama tekniğidir.
- Time-Based Blind SQLi: Veritabanının yanıt süresini ölçerek bilgi toplama tekniğidir.
- Stored (Persistent) SQL Injection:Bu tür saldırılar, zararlı SQL kodunu veritabanına kalıcı olarak yazmayı hedefler. Zararlı kod, daha sonra uygulamanın farklı bölümlerinde çalıştırılarak güvenlik açığı yaratır.
SQL Injection Örnekleri
1. Basit SQL Injection Örneği
Bir uygulama, kullanıcı giriş bilgilerini doğrulamak için aşağıdaki gibi bir SQL sorgusu kullanabilir:Saldırgan, kullanıcı adı veya parola alanına aşağıdaki gibi zararlı bir giriş yapabilir:
Sonuçta ortaya çıkan SQL sorgusu şöyle olacaktır:
Bu sorgu her zaman doğru döner ve saldırganın veritabanına erişim sağlamasına neden olur.
2. Union-Based SQL Injection Örneği
Aşağıdaki gibi bir SQL sorgusu düşünün:Saldırgan, id parametresine aşağıdaki gibi bir giriş yapabilir:
Sonuçta ortaya çıkan SQL sorgusu şöyle olacaktır:
Bu sorgu, admin tablosundaki kullanıcı adları ve parolaları döndürecektir.
SQL Injection'dan Korunma Yöntemleri
SQL Injection saldırılarından korunmak için çeşitli yöntemler bulunmaktadır:Parametrik Sorgular Kullanma:Parametrik sorgular (prepared statements), SQL sorgularını sabit tutar ve kullanıcı girişlerini ayrı parametreler olarak geçirir. Bu, SQL kodu ile kullanıcı girişlerinin karışmasını önler
ORM (Object-Relational Mapping) Kullanma:ORM araçları, veritabanı işlemlerini programlama diline uygun şekilde yönetir ve SQL Injection riskini azaltır.
Girdi Doğrulama ve Temizleme:Kullanıcı girişlerini sıkı bir şekilde doğrulamak ve zararlı karakterlerden arındırmak, SQL Injection riskini azaltır.
En Az Yetki İlkesi:Veritabanı kullanıcılarına sadece ihtiyaç duydukları minimum yetkileri vermek, saldırganların yetkisiz işlemler yapmasını zorlaştırır.
Web Uygulama Güvenlik Duvarı (WAF):WAF, SQL Injection saldırılarını tespit edip engelleyebilen güvenlik araçlarıdır.