Emir Görkem Dal – Blog

Uygulama Katmanı Saldırıları: SQL Injection, XSS ve CSRF Tehditleri

Siber saldırıların büyük bölümü artık ağ veya işletim sistemlerinden ziyade uygulama katmanında gerçekleşiyor. Çünkü burada hem kullanıcı verileri hem de iş mantığı bulunuyor.

Web uygulamaları, API’ler ve mobil servisler üzerinden yapılan her istek, potansiyel bir saldırı yüzeyi.

Bu makalede, modern web dünyasında en sık görülen üç uygulama katmanı saldırısını ele alıyoruz:

SQL Injection, Cross-Site Scripting (XSS) ve Cross-Site Request Forgery (CSRF).

 

SQL Injection (SQL Enjeksiyonu)

Tanım

SQL Injection, uygulamanın kullanıcıdan aldığı veriyi doğrudan SQL sorgusuna yerleştirmesi sonucu, saldırganın sorguyu manipüle ederek veritabanına izinsiz erişim sağlaması anlamına gelir.

Örnek;

SELECT * FROM users WHERE username = '$user' AND password = '$pass';

Saldırgan şu girdiyi gönderirse:

' OR '1'='1

Sorgu şu hale gelir;

SELECT * FROM users WHERE username='' OR '1'='1' AND password='';

Sonuç olarak tüm kullanıcılar listelenir veya oturum açılacaktır.

Etkileri Neler?
  • Kullanıcı bilgileri, kart verileri, kişisel kayıtlar sızabilir.
  • Veritabanı tamamen kontrol altına alınabilir.
  • Bazı durumlarda sistem komutları bile çalıştırılabilir (ör. xp_cmdshell).

 

Gerçek Vakalar

 

  • TalkTalk (2015): SQL Injection yoluyla 150.000 müşterinin verisi çalındı.
  • Yahoo (2014): SQL Injection zafiyeti zincirinde kimlik bilgileri sızdı.

 

Korunma Yöntemleri

 

  • Parametrik sorgular (Prepared Statements) kullan.
  • Kullanıcı girdilerini sanitize et, string birleştirmeden kaçın.
  • ORM’lerin güvenli API’lerini tercih et.
    WAF / input validation ile ek koruma sağla.

 

Cross-Site Scripting (XSS)

Tanım

 XSS saldırıları, saldırganın zararlı JavaScript kodlarını başka kullanıcıların tarayıcısında çalıştırmasına dayanır. Genellikle bir form, yorum alanı veya arama kutusu gibi kullanıcı girdileri üzerinden gerçekleşir.

Türleri

 

  • Stored XSS: Zararlı kod veritabanına kaydedilir, sayfa yüklendikçe herkeste çalışır.
  • Reflected XSS: Kod doğrudan link veya parametre aracılığıyla yansıtılır.
  •  DOM-based XSS: Manipülasyon doğrudan tarayıcı tarafında yapılır.

Örnek:

 

<input type="text" name="q" value="<script>alert('XSS')</script>">

Kullanıcının tarayıcısında alert çalışır, ama gerçek saldırıda bu script çerez, token veya oturum bilgisi çalar.

Gerçek Vakalar

 

  • British Airways (2018): Ödeme sayfasındaki XSS açığı üzerinden kart verileri çalındı.
  • eBay (2017): Ürün sayfalarındaki dinamik içerik XSS’e izin veriyordu.

 

Korunma Yöntemleri

 

  • Kullanıcı girdilerini escape et (<, >, ‘, “).
  • HTTP header’larında Content-Security-Policy (CSP) kullan.
  • Giriş doğrulamasında HTML encode / output encode uygula.
  • HttpOnly ve Secure flag’leri olan cookie kullan.

 

Cross-Site Request Forgery (CSRF)

 

  • Kullanıcı girdilerini escape et (<, >, ‘, “).
  • HTTP header’larında Content-Security-Policy (CSP) kullan.
  • Giriş doğrulamasında HTML encode / output encode uygula.
  • HttpOnly ve Secure flag’leri olan cookie kullan.

 

Tanım

CSRF, oturum açmış bir kullanıcının bilgisi dışında, onun yetkileriyle istemediği bir işlem yapılmasına neden olur.

Örneğin:

Bir kullanıcı bankasına giriş yapmıştır. Saldırgan şu URL’yi gizlice açtırır:

 

https://banka.com/transfer?to=attacker&amount=5000

Kullanıcının tarayıcısı oturum çerezini gönderir, sistem isteği gerçek sanır.

 

Etkileri

 

  • Parasal işlemler, parola değişiklikleri, veri silme işlemleri gizlice yapılabilir.

 

Gerçek Vakalar

 

  • MySpace (2006): CSRF açığıyla toplu spam mesajlar gönderildi.
  • Netflix (2018): Kullanıcı hesap ayarları CSRF ile manipüle edilebiliyordu.

 

Korunma Yöntemleri

 

  • CSRF token ekle (her form için benzersiz).
  • SameSite cookie flag’ini aktif et.
  • Kritik işlemler için re-authentication veya MFA onay iste.
  • Yalnızca POST isteklerine izin ver, GET ile işlem yaptırma.

 

Ortak Nokta: Girdi Doğrulama (Input Validation)

 

  • Bu üç saldırının da ortak kökü: kullanıcı girdisine güvenmek.
  • Hiçbir kullanıcı girdisi, hiçbir koşulda “temiz” kabul edilmemelidir.
  • Girdi doğrulama; filtreleme, kısıtlama ve bağlama uygun kodlama (encoding) ile yapılmalıdır.

 

 

Saldırı Türü

Amaç

Etki

Önleme Yöntemleri

SQL Injection

Veritabanına sızma

Veri hırsızlığı, sistem kontrolü

Parametrik sorgular, input validation

XSS

Kullanıcı oturumlarını çalmak, kod çalıştırmak

Kimlik bilgisi çalma, yönlendirme

CSP, output encoding, input filtering

CSRF

Kullanıcı adına işlem yaptırmak

Yetkisiz işlem, para transferi

CSRF token, SameSite cookie, MFA

Teknik olarak, modern web uygulamaları güvenli kodlama standartları ve doğru yapılandırmalar ile geliştirildiğinde, SQL Injection, XSS ve CSRF gibi saldırıların engellenmesi mümkündür. Ancak uygulamada:

 

  • Kullanıcı girdilerinin yeterince filtrelenmemesi.
  • Parametrik sorgular yerine dinamik SQL kullanılması;
  • Output encoding ve Content Security Policy (CSP) eksiklikleri;
  • CSRF token ve oturum güvenliği mekanizmalarının uygulanmaması;
  • Geliştirici farkındalığının yetersiz olması

gibi zaafiyetler olduğu sürece uygulama katmanı saldırıları hâlâ ciddi bir tehdit olmaya devam etmektedir.

 

Ayrıca modern saldırganlar artık yalnızca manuel yöntemler değil; otomatik exploit araçları, hazır payload kütüphaneleri ve tarama botları kullanarak bu açıkları çok daha hızlı tespit edip istismar edebilmektedir.

 

Sonuç olarak, uygulama katmanı saldırıları teknik olarak önlenebilir olsa da — hatalı kodlama, eksik güvenlik kontrolleri ve insan faktörü bir araya geldiğinde en kritik veri ihlallerine yol açmaya devam edecektir.

 

Serimizin bir sonraki bölümünde, artık bilinen açıkları değil, henüz keşfedilmemiş veya yamalanmamış zafiyetleri hedef alan Zero-Day Exploit saldırılarını inceleyeceğiz.

Kapat

Güncel tehditler ve güvenlik çözümleri hakkında ipuçları bulabileceğiniz bloguma hoş geldiniz.

EMİR GÖRKEM DAL / SİBER GÜVENLİK UZMANI /