- Katılım
- 2 Ocak 2026
- Mesajlar
- 106
- Tepkime puanı
- 122
- Puan
- 43
SQL İnj Sistemi Nasıl Manipüle Eder?
https://zekikayaalp.medium.com/?sou...1c0ff7---------------------------------------XSS sistemi nasıl manipüle eder yazımızdan sonra şimdi de SQL sistemi nasıl manipüle eder konusu üzerine konuşacağız.
Bu yazıda şu sorulara cevap bulacaksınız:
Backend neden kullanıcı inputunu komut gibi algılar?SQL Injection neden hâlâ modern sistemlerde görülüyor?
SQL Injection sırasında database aslında neyi çalıştırır?
SQL İnj paylaodları genel olarak nelerdir?
SQL Injection payloadları neden her sistemde aynı çalışmaz?
SQL İnj payload seçimini neye göre yapıyoruz?
Payload sistemi nasıl manpüle eder?
SQL inj payload manipülasyonu XSS payloadlarından farkı nedir?
Bismilllah..
Sql injection saldırısı hepimizin bildiği üzere waf filtresinden ,tarayıcı CSP’sinden geçip backend bölümünden veri çekmektir.
Bunu çeşitli payloadlar ile yaparız. Bu yazımızda klasik ‘OR 1=1 — payloadları sisteme inj etmekle uğraşmayacağız.
Biz sistemin işleyişini çözmek istiyoruz. Arka planda nelerin döndüğünü ve sistemin nasıl manipüle edildiği üzerine konuşacağız.
Web sitesi nasıl çalışır?
Kullanıcının bir web sitesi login panelinde gördüğü şey sadece bu iki sorudan ibarettir ama backend tarafında işler çok daha farklı işliyor.
Girmiş olduğunuz kullanıcı adı — parola öncelikle bir SQL sorgusundan geçer:
Burada SELECT ile users tablosu seçilir
ordan kullanıcı adı : admin
şifresi ise 123456 olan kullanıcıyı çağırır
Eğer öyle bir kullanıcı varsa login olursunuz yoksa giriş reddedilir.
Buraya kadar her şey normal lakin asıl hata backendin kullanıcıdan gelen inputları güvenli veri olarak değil SQL cümlesinin bir parçası olarak kullanmasıdır.
Tüm manipülasyon burda başlar.
NASIL MI?
SQL inj saldırısı yeni bir sistem kurmak değildir. Zaten var olan bir sistemin çalışma mantığını değiştirir.
Burada saldırganın hedefi veri tabanı değil backend’in oluşturmuş olduğu QUERY yani SORGU Mantığıdır.
SQL INJECTION PSİKOLOJİSİ üzerine konuşalım her şey çözülecek kafanızda
Backend şu sorguyu oluşturur:
Normal kullanıcı :
Ama saldırgan ‘OR ‘1’=’1 gönderirse backend artık sorgu mantığını şöyle değişiriyor:
Burada kullanıcı sadece backend’in sadece karar mekanizmasını değiştirmiştir.
Çünkü ‘1’=’1' her zaman doğru demek. Yani kullanıcı adı ve şifre koşulu daima TRUE döner.
backend mekanizması şunu sorar kendisine:
— Bana verilen bu isteği doğrulamam gerekiyor
ama koşul zaten doğru
o zaman girişi başarılı varsay
Pentester burada nasıl bir saldırıyı yaptı veya zorla mı giriş yaptı?
Hayır , sistem kendi query mantığıyla saldırganı içeri aldı.
İŞTE SQL INJECTION PSİKOLOJİSİ BUDUR.
Buraya kadar sistem mantığını ve psikolojisini işledik bundan sonraki aşamada biraz daha derine ve paylaoad mantığına inelim
SQL İnj paylaodları genel olarak nelerdir?
Burada payloadlar XSS payloadlarında olduğu gibi her birinin hedefi farklıdır.
bazıları:authentication bypass yapmaya,
bazıları:database hakkında bilgi toplamaya,
bazıları:query akışını değiştirmeye,
bazıları ise:sistem davranışını ölçmeye çalışır.
Authenticaton Bypass Payloadları:
Burada amaç login mekanizmasının karar mantığını değiştirmektir.
az önce verdiğimiz payload buna örnektir:
‘ OR ‘1’=’1
admin’ —
‘ OR TRUE —
Bu tip paylaodlar query mantığını daima TRUE yapıp kullanıcı doğrulamasını değiştirir.
UNION-Based Payloadlar
Burada amaç veri tabanından ek veri çekmektir.
Payload
UNION SELECT …
‘ UNION SELECT NULL,NULL —
‘ UNION SELECT table_name,NULL FROM information_schema.tables —
Burada psikoloji şöyledir:
Mevcut query sonucuna başka ek sonuçlar eklemeye çalışır.
yani saldırgan normal response’una kendi sorgusunu enjekte eder ve databaseden ek veri çekilmeye çalışır.
Error-Based Payloadlar
Adından da anlaşılacağı üzere burada payload’ın hedefi hata mesajlarından bilgi toplamaktır.
Bazı hata mesajlarında:
tablo isimleri kolon isimleri veri tabanı türü veya query yapısı sızabiliyor.
Buradaki payloaddan maksat sistemin hata üretmesidir çünkü hata mesajı bazen bilgi sızdırabiliyor.
‘
“
‘ AND updatexml(NULL,concat(0x3a,version()),NULL) —
gibi rastgele veriler gönderilebilir.
Boolean-Based Blind Payloadlar
Burada amaç TRUE/FALSE davranışı üzerinden bilgi toplamak.
Örneğin:
Burada sistem davranışı değişiyorsa saldırgan paylaodın çalıştığını anlar. Burada saldırgan veriyi görmez. Sistem davranışını okur.
Time-Based Blind Payloadlar
Burda amaç zaman gecikmesini okuyarak veri tabanını okumak
‘ WAITFOR DELAY ‘0:0:5’ —
‘ AND IF(1=1,SLEEP(5),0) —
‘ AND SLEEP(5) —
Eğer response gecikirse payload gecikmiştir. Bu yöntem özellikle hata mesajı olmayan ve response farkı göstermeyen sistemlerde kullanılır.
Stacked Query Payloadları
Üstüste yığılmıştan kasıt sisteme birden fazla sql inj enjekte etmektir.
Bir sorgu bittiğinde bir sonra ki sorgu başlatabilir.
‘; SELECT @@version —
Bu tip payloadlar veri silme ve yetki değiştirme gibi etkiler için kullanılır.
Burada saldırgan artık:
query’nin içine yeni query eklemeye çalışır.
Out-of-Band Payloadlar
SON OLARAK burada amaç ise veri tabanını dış dünyayla iletişimi zorlamak.
Bazı gelişmiş SQLi senaryolarında:
database DNS veya HTTP isteği gönderebilir.
Bu durumda saldırgan:
response’u uygulamadan değil,
kendi sunucusundan alır.
Bu artık klasik injection’dan çıkıp:
database davranış manipülasyonuna dönüşür.
Payload seçiminin rastgele olmamasının sebebinin anlaşılmış olduğunu sanıyorum.
SQL Injection, yalnızca bir güvenlik açığı değil; sistemin güvenilmeyen veriyi nasıl yanlış yorumladığının açık bir göstergesidir. Asıl kritik nokta saldırıyı görmek değil, bu manipülasyonun neden mümkün olduğunu anlamaktır.
Güvenli sistem tasarımı, kullanıcı girdisini asla doğrudan güvenmek yerine onu doğru şekilde ayrıştırmakla başlar. Bu yüzden her injection, aslında bir kod hatasından çok bir tasarım hatasıdır.
Sonuç olarak SQL Injection’ı anlamak, sadece saldırıyı değil sistemin mantığını da çözmektir.
ÖDEV:
What is SQL Injection? Tutorial & Examples | Web Security Academy
In this section, we explain: What SQL injection (SQLi) is. How to find and exploit different types of SQLi…
portswigger.netBurdaki lab’ı çözüm yorumlarda belirtmeni istiyorum. Teorik bilgiyi pratiğe dökmeden öğrenemezsin.
ZEKİ KAYAALP