> For the complete documentation index, see [llms.txt](https://emre-ermenek.gitbook.io/sqli-egitimi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://emre-ermenek.gitbook.io/sqli-egitimi/sql-injection-sqli-egitim-modulu-ve-portswigger/girizgah.md).

# Girizgah

### SQL Injection (SQLi) Eğitimine Giriş

SQL Injection, günümüzde hala sıkça karşılaşılan; hem yazılım geliştiricilerin hem de siber güvenlik uzmanlarının mutlaka bilmesi gereken kritik bir web zafiyetidir. Yıllardır siber dünyanın en tehlikeli açıkları listesi olan **OWASP Top 10**'daki tahtını korumaya devam etmektedir.

Saldırgan, web uygulamasının arka planda çalıştırdığı SQL sorgularını manipüle ederek veritabanını kendi istediği gibi davranmaya zorlar. Başarılı bir SQL Injection saldırısı; tüm kullanıcı verilerinin sızdırılmasına, verilerin silinmesine ve hatta uygulama üzerinde tam yetkili admin erişimi elde edilmesine yol açabilir.

Bu eğitim serisinde işin sadece teorisinde kalmayacağız. SQL’in ne olduğunu öğrenerek başlayıp, en gelişmiş SQL Injection atlatma (bypass) metotlarına kadar derinlemesine ineceğiz. Konuları gerçekten kavrayabilmeniz için, her bölümün sonuna **PortSwigger** platformundaki ilgili labların çözümlerini adım adım ekledim.

Zamanı geldiğinde size hangilerini çözmeniz gerektiğini söyleyeceğim. Takıldığınız yerde çözüme bakabilirsiniz ancak en iyi öğrenme yöntemi kendi başınıza araştırarak çözmektir. Bu seriyi tam anlamıyla bitirdiğinizde, SQLi zafiyetinin anatomisine ve sömürü tekniklerine dair iyi bir temele sahip olacaksınız.

O zaman en temelden başlayalım.

#### SQL ve Veritabanı Kavramları

* **SQL (Structured Query Language):** Türkçesi "Yapılandırılmış Sorgu Dili"dir. Kısacası, veritabanları ile konuşmamızı ve onlara ne yapmaları gerektiğini söylememizi sağlayan programlama dilidir.
* **Veritabanı (Database):** Verilerin elektronik ortamda, düzenli ve erişilebilir bir şekilde saklandığı yapılardır.
* **DBMS (Database Management System):** Türkçesi "Veritabanı Yönetim Sistemi"dir. Veritabanını yöneten, kullanıcı ile veritabanı arasında köprü görevi gören ana yazılımdır.

#### İki Temel Veritabanı Mimarisi

DBMS'ler veriyi tutma şekillerine göre temel olarak ikiye ayrılır:

1. **Relational (İlişkisel) Veritabanları:** Verileri tıpkı Excel tabloları gibi kesin hatları olan satır ve sütunlarda tutarlar. Birbiriyle ilişkili tablolar üzerinden çalışırlar. *(Örn: MySQL, PostgreSQL, MSSQL, Oracle)*
2. **Non-Relational (İlişkisel Olmayan - NoSQL) Veritabanları:** Verileri daha esnek, tablo yerine döküman (JSON vb.) bazlı tutarlar. *(Örn: MongoDB, Cassandra)*

İşte bizim SQL Injection eğitimindeki asıl hedefimiz ve oyun alanımız **Relational (İlişkisel)** veritabanları olacak. Çünkü sömüreceğimiz o meşhur SQL dili, tamamen bu sistemlerin ana dilidir.
