Modern siber güvenlik uzmanları için web uygulamaları (e-ticaret siteleri, bloglar, API’ler) en yaygın saldırı yüzeyini oluşturur. Kali Linux, web zafiyetlerini tespit etmek için güçlü araçlar barındırır. Bu rehberde, web uygulamalarını tehdit eden en popüler iki zafiyet olan SQL Injection (SQLi) ve Cross-Site Scripting (XSS) açıklarını, etik sınırlar içinde nasıl test edeceğinizi öğreneceksiniz.

 

Giriş: Web Zafiyet Testi Neden Önemli?

 

Web uygulamaları, kullanıcı verilerini işlediği için saldırganların ana hedefidir. Web zafiyetlerini etik olarak tespit etmek (Bug Bounty veya Penetrasyon Testi kapsamında), geliştiricilerin uygulamayı yayına almadan önce bu riskleri kapatmasını sağlar.


 

I. SQL Injection (SQLi) Açığı: Veritabanı Ele Geçirme

 

SQL Injection, bir saldırganın web uygulamasının kullanıcı girişi alanlarını (formlar, URL parametreleri vb.) kullanarak uygulamaya ait veritabanı sorgularını manipüle etmesi durumudur.

 

1. Zafiyetin Temel Amacı

 

  • Amaç: Uygulamanın bağlı olduğu veritabanındaki tüm bilgilere (kullanıcı adları, şifreler, müşteri verileri) yetkisiz erişim sağlamak veya verileri değiştirmektir.
  • Risk: SQLi, genellikle uygulamanın tüm veritabanının tehlikeye girmesine neden olan en yüksek riskli zafiyetlerdendir.

 

2. Manuel ve Etik Test Yöntemi

 

Etik bir testte, veritabanına zarar vermeden açığın varlığını ispatlamak esastır.

  • Teknik: Giriş alanlarına veya URL parametrelerine tek tırnak işareti (') eklemek.
  • Neden? Tek tırnak, veritabanı sorgusunun syntax’ını (söz dizimini) bozar. Eğer uygulama hata mesajı döndürürse, bu, girdinizin doğrudan sorguya işlendiği anlamına gelir ve SQLi ihtimali yüksektir.
  • Örnek Test Verisi:
    ' OR 1=1 --
    

 

3. 🛠️ SQLMap Aracı ile Otomatik Tespit

 

Kali Linux’ta bulunan SQLMap, SQLi açıklarını otomatik olarak tespit etmek ve sömürmek için dünyanın en popüler aracıdır.

  • Etik Kullanım: SQLMap’i kullanırken asla canlı ve izinsiz bir sistemi hedef almayın! Sadece kendi kurduğunuz test ortamlarında veya Bug Bounty kapsamındaki hedeflerde kullanın.
  • Temel Kullanım Senaryosu (URL’yi Test Etme):

    Bash

    sqlmap -u "http://hedefsite.com/urun.php?id=1" --batch
    
    • -u: Test edilecek URL ve parametre.
    • --batch: Kullanıcı etkileşimi olmadan varsayılan cevapları otomatik olarak kabul eder.
  • Veritabanı İsimlerini Çekme:

    Bash

    sqlmap -u "..." --dbs
    
  • Kullanıcıları ve Parolaları Çekme (Riskli!):

    Bash

    sqlmap -u "..." -D veritabani_adi -T tablo_adi --dump
    

 

II. Cross-Site Scripting (XSS) Açığı: Kullanıcıları Hedefleme

 

Cross-Site Scripting (XSS), bir saldırganın zararlı istemci tarafı (client-side) kodunu (genellikle JavaScript) savunmasız bir web uygulamasına enjekte etmesi durumudur.

 

1. Zafiyetin Temel Amacı

 

  • Amaç: Uygulamayı kullanan meşru kullanıcıları hedef almaktır.
  • Risk: Enjekte edilen kod, kullanıcının oturum bilgilerini (session cookie’leri), ekran görüntülerini veya tuş vuruşlarını saldırganın kontrolündeki bir sunucuya gönderebilir.
  • Türleri:
    • Stored (Kalıcı) XSS: Kod, veritabanına kaydedilir (Örn: Yorumlar kısmına).
    • Reflected (Yansıyan) XSS: Kod, URL parametresinden girilir ve hemen kullanıcıya yansıtılır (en yaygını).

 

2. Manuel ve Etik Test Yöntemi

 

XSS’i test etmek için, uygulama girdilerinin HTML etiketlerini filtreleyip filtrelemediğini kontrol ederiz.

  • Test Senaryosu: Arama çubukları veya kullanıcı adı alanlarına basit bir JavaScript kodu eklenir.
  • Örnek Test Kodu (Doğrulama amaçlı):

    HTML

    <script>alert('XSS Test Başarılı!')</script>
    
    • Eğer bu kod çalışır ve ekranda bir pop-up (uyarı kutusu) açılırsa, XSS açığı mevcuttur.

 

3. 🛠️ Burp Suite Aracı ile Tespit ve Yönetim

 

Kali Linux’un içinde bulunan Burp Suite Community Edition (veya Professional), XSS dahil olmak üzere tüm web zafiyetlerini test etmek için endüstri standardı bir araçtır.

  • Çalışma Prensibi: Burp Suite, tarayıcınız ile hedef sunucu arasında bir vekil (Proxy) görevi görür. Tüm trafiği yakalar, analiz eder ve manipüle etmenizi sağlar.
  • Temel Kullanım Adımları:
    1. Burp Suite’i açın ve tarayıcınızı Burp’ün Proxy ayarına yönlendirin (Genellikle 127.0.0.1 port 8080).
    2. Test etmek istediğiniz web formuna veri girin ve “Gönder” deyin.
    3. Burp Suite’in “Proxy” sekmesindeki “History” bölümünde isteği yakalayın.
    4. İsteği sağ tıklayıp “Send to Repeater” seçeneği ile gönderin.
    5. “Repeater” sekmesinde, isteğinizin içeriğini değiştirerek (Örn: Normal veriyi XSS test koduyla değiştirerek) hedef sunucuya tekrar tekrar gönderin ve cevabı analiz edin.

 

III. Etik Sınırlar ve Yasal Sorumluluk

 

Web zafiyetlerini test ederken, yasalara ve etik kurallara uymak hayati önem taşır:

  • Sadece İzinli Sistemler: Testlerinizi sadece kendi yerel makinenizdeki test uygulamalarında (Örn: DVWA, bWAPP) veya yasal olarak yetkilendirildiğiniz alan adlarında yapın.
  • Asla Veriye Erişmeyin: Bir SQLi açığı bulduğunuzda, açığın varlığını kanıtlamak yeterlidir (Örn: Sadece veritabanının adını çekmek). Tüm kullanıcı bilgilerini veya parolaları çekmeye çalışmayın.
  • Kalıcı Zarar Vermeyin: XSS testlerinde, kodu kalıcı olarak (Stored XSS) aktif bırakarak diğer kullanıcıları tehlikeye atmayın.

 

Sonuç

 

SQL Injection ve XSS, web zafiyetlerinin sadece başlangıcıdır. Kali Linux ve Burp Suite gibi araçlar, size bu zafiyetleri profesyonel bir düzeyde tespit etme gücü verir. Başarılı bir siber güvenlik uzmanı, bu araçları ustaca kullanırken aynı zamanda etik sorumluluklarının bilincinde olandır.