Manuel Blind SQL Injection! #1

Bunjo

Uzman üye
14 Ara 2020
1,581
1,878
HTTParty
m9RCVr.png
m9RCVr.png



kbrn6ph.png


Merhabalar ben Anka Red Team'den Bunjo, bu konuda manual şekilde blind sql zafiyetinin nasıl sömürülebileceğini anlatacağım.

Bu konuda arkada dönen PHP kodlarını ve sorguyu detaylı bir şekilde anlattığım için tekrar anlatmıyorum.



Blind SQL Injection Nedir?

Kör SQL enjeksiyonu (Blind SQL Injection), bir web uygulamasının veritabanı üzerindeki kritik bilgileri çalmak veya manipüle etmek için yapılan bir saldırı türüdür.
Bu saldırı, web uygulamasının giriş formları veya URL parametreleri gibi kullanıcı tarafından sağlanan giriş alanları aracılığıyla gerçekleştirilir.


Blind SQL Injection'da, saldırgan doğrudan hedeflenen SQL kodunu veritabanına enjekte etmek yerine, web uygulamasının yanıtlarını inceleyerek veritabanındaki bilgiler hakkında bilgi edinmeye çalışır.

Saldırgan, genellikle mantıksal ifadelerin doğruluğunu test etmek için kör SQL enjeksiyonu kullanır. Örneğin, saldırgan, web uygulamasının yanıtlarında bulunan belirli bir mesajın varlığına dayalı olarak veritabanı sorgularının sonucunu çıkarabilir.


Blind SQL Injection saldırıları genellikle otomatik araçlar veya özel olarak yazılmış scriptler kullanılarak gerçekleştirilir. Bu saldırıların hedefi genellikle kullanıcı kimlik bilgileri, şifreler, kredi kartı numaraları gibi hassas bilgileri içeren veritabanı tablolarına erişmektir.

kbrn6ph.png


DVWA Kurulumu

Rich (BB code):
apt install dvwa
1edtk9e.png


DVWA Adresi:

CoffeeScript:
http://127.0.0.1:42001/

a8phsbm.png


Database Kurulumu:

Create Database butonuna basınız.


igv87dw.png


Güvenlik Seviyesinin Ayarlanması:

Kendinize göre seçip pratik yapabilirsiniz, ben bu konuda "low" düzeyini kullanacağım.

jadb65o.png


kbrn6ph.png


Zafiyetin Tespiti

"SQL Injection (Blind)" Sekmesine geliyorum.


Burada bulunan forma bir veri girdiğimde veritabanı içerisinde sorgu döndüğünü anlıyorum.

hmpeijs.png


Kullanıcı ID değeri için girdiğim veriyi arttırarak bir hata mesajı almaya çalışıyorum.

gmjtdvr.png


6 değerini verdiğim zaman hata alıyorum, bu bana id değerinin en fazla 5 olduğunu gösteriyor.

Bu hata mesajından yola çıkarak sorguyu doğru yapmaya çalışıyorum.

h49227w.png


Bu payload ile, 6. ID değerinden gelen false değerini OR operatörüyle 1 değeri 1 değerine eşit olduğu için gelen true değeriyle birlikte dönen kod,

false OR true şeklinde oluyor. OR operatörü kullanıldığı sorgu en az bir adet true değerini içeriyorsa bütün sorguyu true olarak tamamlar.

sonuç olarak true değeri döndüğü için, PHP kodu bizlere ID değerinin bulunduğunu söyledi.



kbrn6ph.png


Database İsminin Uzunluğunun Öğrenilmesi

Database isminin uzunluğunu, girdiğimiz sayıya eşit olup olmadığını kontrol ederek uzunluğunu öğrenmeye çalışalım.

de2coj7.png


False değeri döndüğü için, database isminin uzunluğunun 1 harf olmadığını bu şekilde tespit edebilirsiniz.

konuyu uzatmamak için 4 değerini deniyorum


k6zt6zz.png


Burada true dönüyor, veritabanı ismi 4 harfliymiş.


kbrn6ph.png


Database İsminin Öğrenilmesi

Burada ASCII karakterleri kullanacağız, yine true ya da false değerleri alarak harf tespiti yapmaya çalışacağız.

ASCII - Binary Karakter Tablosu


LetterASCII CodeBinaryLetterASCII CodeBinary
a​
097​
01100001​
A​
065​
01000001​
b​
098​
01100010​
B​
066​
01000010​
c​
099​
01100011​
C​
067​
01000011​
d​
100​
01100100​
D​
068​
01000100​
e​
101​
01100101​
E​
069​
01000101​
f​
102​
01100110​
F​
070​
01000110​
g​
103​
01100111​
G​
071​
01000111​
h​
104​
01101000​
H​
072​
01001000​
i​
105​
01101001​
I​
073​
01001001​
j​
106​
01101010​
J​
074​
01001010​
k​
107​
01101011​
K​
075​
01001011​
l​
108​
01101100​
L​
076​
01001100​
m​
109​
01101101​
M​
077​
01001101​
n​
110​
01101110​
N​
078​
01001110​
o​
111​
01101111​
O​
079​
01001111​
p​
112​
01110000​
P​
080​
01010000​
q​
113​
01110001​
Q​
081​
01010001​
r​
114​
01110010​
R​
082​
01010010​
s​
115​
01110011​
S​
083​
01010011​
t​
116​
01110100​
T​
084​
01010100​
u​
117​
01110101​
U​
085​
01010101​
v​
118​
01110110​
V​
086​
01010110​
w​
119​
01110111​
W​
087​
01010111​
x​
120​
01111000​
X​
088​
01011000​
y​
121​
01111001​
Y​
089​
01011001​
z​
122​
01111010​
Z​
090​
01011010​


Burada 1. Veritabanının ilk harfinin karşılığının 97 yani "a" değerine karşılık gelip gelmediğini kontrol ediyoruz.

gauxvkl.png


False dönüyor, ilk harf "a" değilmiş.

100 yani "d" harfi için deniyorum.

lin7thb.png


true dönüyor. Kullandığımız yazılımın ismi DVWA olduğuna göre database ismi de aynı şekilde.

Bilmiyormuş gibi devam ediyoruz.


46yqry1.png


"118" yani "v" harfi için deniyorum yine true dönüyor, bu şekilde devam edebilirsiniz.

kbrn6ph.png


Tablo Sayısının Öğrenilmesi

Yine aynı şekilde true, false değerlerinden yola çıkaracağız.


1 adet tablonun olup olmadığı kontrol ediyor.

dslc6oy.png


True dönüyor site de en az 1 adet tablo var.

2 değeri kontrol ediliyor.

ew3ogmb.png


Burada da yine aynı mantık en az 2 tablo olduğunu anlıyoruz.

3 için deniyoruz.


9z579hv.png


Hata alıyoruz, 2 adet tablo varmış (username, password şeklinde olabilir :) )


kbrn6ph.png


Okuyan herkese teşekkür ederim, yeni konuda devam edeceğim :)
 

louise0357

Anka Underground Team
21 Tem 2023
484
177
/
m9RCVr.png
m9RCVr.png



kbrn6ph.png


Merhabalar ben Anka Red Team'den Bunjo, bu konuda manual şekilde blind sql zafiyetinin nasıl sömürülebileceğini anlatacağım.

Bu konuda arkada dönen PHP kodlarını ve sorguyu detaylı bir şekilde anlattığım için tekrar anlatmıyorum.



Blind SQL Injection Nedir?

Kör SQL enjeksiyonu (Blind SQL Injection), bir web uygulamasının veritabanı üzerindeki kritik bilgileri çalmak veya manipüle etmek için yapılan bir saldırı türüdür.
Bu saldırı, web uygulamasının giriş formları veya URL parametreleri gibi kullanıcı tarafından sağlanan giriş alanları aracılığıyla gerçekleştirilir.


Blind SQL Injection'da, saldırgan doğrudan hedeflenen SQL kodunu veritabanına enjekte etmek yerine, web uygulamasının yanıtlarını inceleyerek veritabanındaki bilgiler hakkında bilgi edinmeye çalışır.

Saldırgan, genellikle mantıksal ifadelerin doğruluğunu test etmek için kör SQL enjeksiyonu kullanır. Örneğin, saldırgan, web uygulamasının yanıtlarında bulunan belirli bir mesajın varlığına dayalı olarak veritabanı sorgularının sonucunu çıkarabilir.


Blind SQL Injection saldırıları genellikle otomatik araçlar veya özel olarak yazılmış scriptler kullanılarak gerçekleştirilir. Bu saldırıların hedefi genellikle kullanıcı kimlik bilgileri, şifreler, kredi kartı numaraları gibi hassas bilgileri içeren veritabanı tablolarına erişmektir.

kbrn6ph.png


DVWA Kurulumu

Rich (BB code):
apt install dvwa
1edtk9e.png


DVWA Adresi:

CoffeeScript:
http://127.0.0.1:42001/

a8phsbm.png


Database Kurulumu:

Create Database butonuna basınız.


igv87dw.png


Güvenlik Seviyesinin Ayarlanması:

Kendinize göre seçip pratik yapabilirsiniz, ben bu konuda "low" düzeyini kullanacağım.

jadb65o.png


kbrn6ph.png


Zafiyetin Tespiti

"SQL Injection (Blind)" Sekmesine geliyorum.

Burada bulunan forma bir veri girdiğimde veritabanı içerisinde sorgu döndüğünü anlıyorum.


hmpeijs.png


Kullanıcı ID değeri için girdiğim veriyi arttırarak bir hata mesajı almaya çalışıyorum.

gmjtdvr.png


6 değerini verdiğim zaman hata alıyorum, bu bana id değerinin en fazla 5 olduğunu gösteriyor.

Bu hata mesajından yola çıkarak sorguyu doğru yapmaya çalışıyorum.

h49227w.png


Bu payload ile, 6. ID değerinden gelen false değerini OR operatörüyle 1 değeri 1 değerine eşit olduğu için gelen true değeriyle birlikte dönen kod,

false OR true şeklinde oluyor. OR operatörü kullanıldığı sorgu en az bir adet true değerini içeriyorsa bütün sorguyu true olarak tamamlar.

sonuç olarak true değeri döndüğü için, PHP kodu bizlere ID değerinin bulunduğunu söyledi.



kbrn6ph.png


Database İsminin Uzunluğunun Öğrenilmesi

Database isminin uzunluğunu, girdiğimiz sayıya eşit olup olmadığını kontrol ederek uzunluğunu öğrenmeye çalışalım.

de2coj7.png


False değeri döndüğü için, database isminin uzunluğunun 1 harf olmadığını bu şekilde tespit edebilirsiniz.

konuyu uzatmamak için 4 değerini deniyorum


k6zt6zz.png


Burada true dönüyor, veritabanı ismi 4 harfliymiş.


kbrn6ph.png


Database İsminin Öğrenilmesi

Burada ASCII karakterleri kullanacağız, yine true ya da false değerleri alarak harf tespiti yapmaya çalışacağız.

ASCII - Binary Karakter Tablosu


LetterASCII CodeBinaryLetterASCII CodeBinary
a​
097​
01100001​
A​
065​
01000001​
b​
098​
01100010​
B​
066​
01000010​
c​
099​
01100011​
C​
067​
01000011​
d​
100​
01100100​
D​
068​
01000100​
e​
101​
01100101​
E​
069​
01000101​
f​
102​
01100110​
F​
070​
01000110​
g​
103​
01100111​
G​
071​
01000111​
h​
104​
01101000​
H​
072​
01001000​
i​
105​
01101001​
I​
073​
01001001​
j​
106​
01101010​
J​
074​
01001010​
k​
107​
01101011​
K​
075​
01001011​
l​
108​
01101100​
L​
076​
01001100​
m​
109​
01101101​
M​
077​
01001101​
n​
110​
01101110​
N​
078​
01001110​
o​
111​
01101111​
O​
079​
01001111​
p​
112​
01110000​
P​
080​
01010000​
q​
113​
01110001​
Q​
081​
01010001​
r​
114​
01110010​
R​
082​
01010010​
s​
115​
01110011​
S​
083​
01010011​
t​
116​
01110100​
T​
084​
01010100​
u​
117​
01110101​
U​
085​
01010101​
v​
118​
01110110​
V​
086​
01010110​
w​
119​
01110111​
W​
087​
01010111​
x​
120​
01111000​
X​
088​
01011000​
y​
121​
01111001​
Y​
089​
01011001​
z​
122​
01111010​
Z​
090​
01011010​


Burada 1. Veritabanının ilk harfinin karşılığının 97 yani "a" değerine karşılık gelip gelmediğini kontrol ediyoruz.

gauxvkl.png


False dönüyor, ilk harf "a" değilmiş.

100 yani "d" harfi için deniyorum.

lin7thb.png


true dönüyor. Kullandığımız yazılımın ismi DVWA olduğuna göre database ismi de aynı şekilde.

Bilmiyormuş gibi devam ediyoruz.


46yqry1.png


"118" yani "v" harfi için deniyorum yine true dönüyor, bu şekilde devam edebilirsiniz.

kbrn6ph.png


Tablo Sayısının Öğrenilmesi

Yine aynı şekilde true, false değerlerinden yola çıkaracağız.


1 adet tablonun olup olmadığı kontrol ediyor.

dslc6oy.png


True dönüyor site de en az 1 adet tablo var.

2 değeri kontrol ediliyor.

ew3ogmb.png


Burada da yine aynı mantık en az 2 tablo olduğunu anlıyoruz.

3 için deniyoruz.


9z579hv.png


Hata alıyoruz, 2 adet tablo varmış (username, password şeklinde olabilir :) )


kbrn6ph.png


Okuyan herkese teşekkür ederim, yeni konuda devam edeceğim :)
Eline sağlık Bunjo Hocam
 

BH80

Co Admin
24 Ocak 2016
554
197
-Türkistan-
Tebrikler çok güzel konu ve çok güzel anlatım, artık sadece errorbased sql tiplerini zorlamak yerine blind based, time based gibi sql türlerini de öğrenip bakış açımızı geliştirmeliyiz öğrenip bu konularda kendini geliştiren herkes ekmeğini yer. Time Based anlatımını da bekliyorum.
 

Bunjo

Uzman üye
14 Ara 2020
1,581
1,878
HTTParty
Tebrikler çok güzel konu ve çok güzel anlatım, artık sadece errorbased sql tiplerini zorlamak yerine blind based, time based gibi sql türlerini de öğrenip bakış açımızı geliştirmeliyiz öğrenip bu konularda kendini geliştiren herkes ekmeğini yer. Time Based anlatımını da bekliyorum.
Önerin için teşekkürler
 

Butcherb3y

Uzman üye
1 Eyl 2022
1,533
1,140
Anıtkabir
m9RCVr.png
m9RCVr.png



kbrn6ph.png


Merhabalar ben Anka Red Team'den Bunjo, bu konuda manual şekilde blind sql zafiyetinin nasıl sömürülebileceğini anlatacağım.

Bu konuda arkada dönen PHP kodlarını ve sorguyu detaylı bir şekilde anlattığım için tekrar anlatmıyorum.



Blind SQL Injection Nedir?

Kör SQL enjeksiyonu (Blind SQL Injection), bir web uygulamasının veritabanı üzerindeki kritik bilgileri çalmak veya manipüle etmek için yapılan bir saldırı türüdür.
Bu saldırı, web uygulamasının giriş formları veya URL parametreleri gibi kullanıcı tarafından sağlanan giriş alanları aracılığıyla gerçekleştirilir.


Blind SQL Injection'da, saldırgan doğrudan hedeflenen SQL kodunu veritabanına enjekte etmek yerine, web uygulamasının yanıtlarını inceleyerek veritabanındaki bilgiler hakkında bilgi edinmeye çalışır.

Saldırgan, genellikle mantıksal ifadelerin doğruluğunu test etmek için kör SQL enjeksiyonu kullanır. Örneğin, saldırgan, web uygulamasının yanıtlarında bulunan belirli bir mesajın varlığına dayalı olarak veritabanı sorgularının sonucunu çıkarabilir.


Blind SQL Injection saldırıları genellikle otomatik araçlar veya özel olarak yazılmış scriptler kullanılarak gerçekleştirilir. Bu saldırıların hedefi genellikle kullanıcı kimlik bilgileri, şifreler, kredi kartı numaraları gibi hassas bilgileri içeren veritabanı tablolarına erişmektir.

kbrn6ph.png


DVWA Kurulumu

Rich (BB code):
apt install dvwa
1edtk9e.png


DVWA Adresi:

CoffeeScript:
http://127.0.0.1:42001/

a8phsbm.png


Database Kurulumu:

Create Database butonuna basınız.


igv87dw.png


Güvenlik Seviyesinin Ayarlanması:

Kendinize göre seçip pratik yapabilirsiniz, ben bu konuda "low" düzeyini kullanacağım.

jadb65o.png


kbrn6ph.png


Zafiyetin Tespiti

"SQL Injection (Blind)" Sekmesine geliyorum.

Burada bulunan forma bir veri girdiğimde veritabanı içerisinde sorgu döndüğünü anlıyorum.


hmpeijs.png


Kullanıcı ID değeri için girdiğim veriyi arttırarak bir hata mesajı almaya çalışıyorum.

gmjtdvr.png


6 değerini verdiğim zaman hata alıyorum, bu bana id değerinin en fazla 5 olduğunu gösteriyor.

Bu hata mesajından yola çıkarak sorguyu doğru yapmaya çalışıyorum.

h49227w.png


Bu payload ile, 6. ID değerinden gelen false değerini OR operatörüyle 1 değeri 1 değerine eşit olduğu için gelen true değeriyle birlikte dönen kod,

false OR true şeklinde oluyor. OR operatörü kullanıldığı sorgu en az bir adet true değerini içeriyorsa bütün sorguyu true olarak tamamlar.

sonuç olarak true değeri döndüğü için, PHP kodu bizlere ID değerinin bulunduğunu söyledi.



kbrn6ph.png


Database İsminin Uzunluğunun Öğrenilmesi

Database isminin uzunluğunu, girdiğimiz sayıya eşit olup olmadığını kontrol ederek uzunluğunu öğrenmeye çalışalım.

de2coj7.png


False değeri döndüğü için, database isminin uzunluğunun 1 harf olmadığını bu şekilde tespit edebilirsiniz.

konuyu uzatmamak için 4 değerini deniyorum


k6zt6zz.png


Burada true dönüyor, veritabanı ismi 4 harfliymiş.


kbrn6ph.png


Database İsminin Öğrenilmesi

Burada ASCII karakterleri kullanacağız, yine true ya da false değerleri alarak harf tespiti yapmaya çalışacağız.

ASCII - Binary Karakter Tablosu


LetterASCII CodeBinaryLetterASCII CodeBinary
a​
097​
01100001​
A​
065​
01000001​
b​
098​
01100010​
B​
066​
01000010​
c​
099​
01100011​
C​
067​
01000011​
d​
100​
01100100​
D​
068​
01000100​
e​
101​
01100101​
E​
069​
01000101​
f​
102​
01100110​
F​
070​
01000110​
g​
103​
01100111​
G​
071​
01000111​
h​
104​
01101000​
H​
072​
01001000​
i​
105​
01101001​
I​
073​
01001001​
j​
106​
01101010​
J​
074​
01001010​
k​
107​
01101011​
K​
075​
01001011​
l​
108​
01101100​
L​
076​
01001100​
m​
109​
01101101​
M​
077​
01001101​
n​
110​
01101110​
N​
078​
01001110​
o​
111​
01101111​
O​
079​
01001111​
p​
112​
01110000​
P​
080​
01010000​
q​
113​
01110001​
Q​
081​
01010001​
r​
114​
01110010​
R​
082​
01010010​
s​
115​
01110011​
S​
083​
01010011​
t​
116​
01110100​
T​
084​
01010100​
u​
117​
01110101​
U​
085​
01010101​
v​
118​
01110110​
V​
086​
01010110​
w​
119​
01110111​
W​
087​
01010111​
x​
120​
01111000​
X​
088​
01011000​
y​
121​
01111001​
Y​
089​
01011001​
z​
122​
01111010​
Z​
090​
01011010​


Burada 1. Veritabanının ilk harfinin karşılığının 97 yani "a" değerine karşılık gelip gelmediğini kontrol ediyoruz.

gauxvkl.png


False dönüyor, ilk harf "a" değilmiş.

100 yani "d" harfi için deniyorum.

lin7thb.png


true dönüyor. Kullandığımız yazılımın ismi DVWA olduğuna göre database ismi de aynı şekilde.

Bilmiyormuş gibi devam ediyoruz.


46yqry1.png


"118" yani "v" harfi için deniyorum yine true dönüyor, bu şekilde devam edebilirsiniz.

kbrn6ph.png


Tablo Sayısının Öğrenilmesi

Yine aynı şekilde true, false değerlerinden yola çıkaracağız.


1 adet tablonun olup olmadığı kontrol ediyor.

dslc6oy.png


True dönüyor site de en az 1 adet tablo var.

2 değeri kontrol ediliyor.

ew3ogmb.png


Burada da yine aynı mantık en az 2 tablo olduğunu anlıyoruz.

3 için deniyoruz.


9z579hv.png


Hata alıyoruz, 2 adet tablo varmış (username, password şeklinde olabilir :) )


kbrn6ph.png


Okuyan herkese teşekkür ederim, yeni konuda devam edeceğim :)
Elinize sağlık yine dikkatli şekilde okuyacam canım
 

'pump

Uzman üye
9 Ara 2022
1,390
2,997
Ağ Kablolarında Geziyor
eline sağlık bunjo , dvwa şuan da bende kurulu değil resimli burayada eklemek isterdum, ancak 2. method olarak da şunu eklemek isterim
Burp'den http request kısmını kopyalayıp , .txt dosyaya kaydederek , sqlmap aracına
sqlmap -r dosyaadi.txt yazarakda bu zafiyet istismar edilebilir, yanlış anlama konuya lafım yok sadece aklıma farkli bir method geldi söylemek istedim , senin yaptığın manuel tabi hazırlardan daha iyi olucaktır. :)
galiba meduim ayarda da yapılıyordu bu , hatırlamıyorum pek 😊😅
 

teux

Katılımcı Üye
23 Ocak 2023
959
1,326
Her gördüğümde konularını okumaya gayret ediyorum, hiç bir zaman çizginden şaşmadan kaliteni gün geçtikçe arttırıyorsun. Eline sağlık takipcinim :)
 

Bunjo

Uzman üye
14 Ara 2020
1,581
1,878
HTTParty
Teşekkürler
eline sağlık bunjo , dvwa şuan da bende kurulu değil resimli burayada eklemek isterdum, ancak 2. method olarak da şunu eklemek isterim
Burp'den http request kısmını kopyalayıp , .txt dosyaya kaydederek , sqlmap aracına
sqlmap -r dosyaadi.txt yazarakda bu zafiyet istismar edilebilir, yanlış anlama konuya lafım yok sadece aklıma farkli bir method geldi söylemek istedim , senin yaptığın manuel tabi hazırlardan daha iyi olucaktır. :)
galiba meduim ayarda da yapılıyordu bu , hatırlamıyorum pek 😊😅
Evet bu şekilde otomatize hale de getirebiliriz :) teşekkürler önerin için
Her gördüğümde konularını okumaya gayret ediyorum, hiç bir zaman çizginden şaşmadan kaliteni gün geçtikçe arttırıyorsun. Eline sağlık takipcinim :)
🙂♥️
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.