Selam arkadaslar bugün sql konusundan bahsedicez cok detayli sekilde anlaticam SQL = Structured Query Language
Arkadaslar simdi sql ilskisel veritabanı yönetim sistemleriyle (RDBMS) iletişim kurmak, veri çekmek, güncellemek veya yönetmek için kullanılan STANDART BIR DILDIR
bir websitesinin arka planinda calisan o veritabani örnek olarak mesela iste kullanici adlari sifreler vesaireler sql sorgulariyla yönetilir.
kisaca sql bir adet veritabani türüdür ve en yaygin veritabani türüdür.
simdi size daha iyi anlamaniz icin örnek verecem bir sitede giris formunda kullanici adi ve sifre girildiginde söyle bir sorgu atilir yani bu tarzda:
SELECT * FROM kullanicilar WHERE kullanici_adi = 'ahmet' AND sifre = '12345';
simdi select demek sec demek arkadaslar from da bu yerden yani belirlenmis yerden seciliyor sonra where ise nerden oluyor simdi bunun mantigi söyle direkt ilk ceviricem sonra mantiksal söylicem sec kullanicilardan nerede kullanici adi = ahmet ve sifre 12345
yani kisaca kullanicilar yerinden kullanici adinda ahmet ve sifre 12345 i aliyor bu tipik bir sql sorgusudur yani cok basit
simdi 2. konuya gecelim 2. Bir Sitede Güvenlik Zaafiyeti (SQL Injection) Nasıl Bulunur?
SQL Injection saldırganın web sitesinin veritabanina gönderdigi sorgulara müdahale ederek kendi komutlarini calistirmasidir. Bir sitede bu acik olup olmadigini anlamak icin su adımlar izlenir:
Arkadaslar simdi sql ilskisel veritabanı yönetim sistemleriyle (RDBMS) iletişim kurmak, veri çekmek, güncellemek veya yönetmek için kullanılan STANDART BIR DILDIR
bir websitesinin arka planinda calisan o veritabani örnek olarak mesela iste kullanici adlari sifreler vesaireler sql sorgulariyla yönetilir.
kisaca sql bir adet veritabani türüdür ve en yaygin veritabani türüdür.
simdi size daha iyi anlamaniz icin örnek verecem bir sitede giris formunda kullanici adi ve sifre girildiginde söyle bir sorgu atilir yani bu tarzda:
SELECT * FROM kullanicilar WHERE kullanici_adi = 'ahmet' AND sifre = '12345';
simdi select demek sec demek arkadaslar from da bu yerden yani belirlenmis yerden seciliyor sonra where ise nerden oluyor simdi bunun mantigi söyle direkt ilk ceviricem sonra mantiksal söylicem sec kullanicilardan nerede kullanici adi = ahmet ve sifre 12345
yani kisaca kullanicilar yerinden kullanici adinda ahmet ve sifre 12345 i aliyor bu tipik bir sql sorgusudur yani cok basit
simdi 2. konuya gecelim 2. Bir Sitede Güvenlik Zaafiyeti (SQL Injection) Nasıl Bulunur?
SQL Injection saldırganın web sitesinin veritabanina gönderdigi sorgulara müdahale ederek kendi komutlarini calistirmasidir. Bir sitede bu acik olup olmadigini anlamak icin su adımlar izlenir:
Adım 1: "Giris Noktalarını" Belirle
Sitenin veritabanı ile konustugu yerleri bulmalisin:- URL parametreleri (Örn: site.com/urun.php?id=10)
- Giris formlarıi (Login, kayit olma)
- Arama kutulari
- İletişim formlari
Adim 2: Hata Mesajlarini Gözlemle (Error-Based Testing)
En basit yöntemlerden biri sisteme beklenmedik karakterler göndererek hata verip vermediğini kontrol etmektir.- Bir URL deki id=10 degerini id=10' (sonuna bir tek tirnak ekleyerek) yapıp sayfayı yenile.
- Eğer site "You have an error in your SQL syntax" gibi bir veritabanı hatası veriyorsa bu girdigin verinin veritabani sorgusunu bozdugnu ve acigin olabilecegini gösterir.
Adım 3: Mantıksal Testler (Boolean-Based Testing)
Site hata mesajı vermiyorsa bile açık olabilir. "Doğru/Yanlış" mantığı kullanılır:
- id=10 AND 1=1 (Bu sorgu her zaman doğrudur, sayfa normal yüklenir.)
- id=10 AND 1=0 (Bu sorgu her zaman yanlıştır, eğer sayfa içeriği kaybolursa veya değişirse, SQL enjeksiyonuna karşı savunmasızdır.)
yada arakadaslar sqlmap ile siteye mesela https://yarram.com/urun.php?id=10 yerine sqlmap -u komutu ile acik taramasi yapilabilir sqlmap komutu ise sonraki derste gelecektir
IYI FORUMLAR!!!!