SQL Genel terimleri anlamak, SQL'e doğru bir bakış açışıyla yaklaşmak.

memu.exe

Üye
24 Mar 2023
70
63
lol
Merhaba dostlar! Nasılsınız, mahlenizin dost canlısı ve acemi hackeri geri döndü. Benim gibi acemilerin bilmesi gereken en yegani konulardan birisidir.


SQL sorgusunu yapıyoruz ama çoğumuz ezbere yada sorguların ne olduğundan tam anlamıyla emin değil.
Buna çözüm olarak böyle bir konu açma gereğini duydum kullanılan genel terimlerin ne anlama geldiğini ve nasıl çalıştığından bahsediceğim.
Ve sizden istediğim bir şey olucak sizce bu genel terimler arasında baska hangi terimler var ve hangi terimleri anlatmamı istersiniz, lütfen bunu yorumlarda bahsedin.


Öncellikle sorgumuz neyin ne olduğunu nereden biliyor biraz ondan bahsedeceğim.
Bu sayede neden yetkimiz bazı verilere yetkimizin olmadığının bir sebebini anlamış olucaksınız.
Hemde
select ve from teriminin ne olduğunu anlamış olucaksınız.



Diyelim ki sorgumuz bir okulun veri tablosundan veri istesin.


(select)"ogrenci_numaraları"'nin verilerini ver (from)Ogrenciler tablosundan.



Bu enjeksiyonda, enjekte ettiğimiz
SQL eğer okul verisinde daha önceden


use(kullan) okul(database)


execute edilmediyse imkanı yok siz okul veritabınından istediğiniz veriyi alamazsınız çünkü SQL orayı tanımıyor.




Diyelim ki SQL ile insan arasında bir diyalog olsun ve use "database" kullanılmamış olsun:


İnsan: Bütün sütunları göster, öğrenci tablosundaki.
SQL: nE?





Tablolar ve sütunlar nedir?





Size tek sefer de anlayabileceğiniz bir görsel sunacağım

as6lpwb.PNG


Bu veri tabanın da bulunan ogrenciler tablosudur. Üst taraf sütunlara işaret eder, Sütunların altındakiler de sütun içi verilerdir






SELECT ve FROM terimi


Select terimi hangi sütundan veri istediğinizi, from terimi ise bu sütunun nerede olduğunu işaret eder

-----------------------------------------------------------------------------|
Select * from ogrenciler(Database)

Tablonun içindeki bütün sütunları size gösterir size gösterir. (Bir nevi bütün tabloyu gösterir ama kullanılan terim bütün sütunları göstermesi içindir)
-----------------------------------------------------------------------------|
-----------------------------------------------------------------------------|

Select OgrNumara, OgrAd from ogrenciler

Tablo'da bulunan oğrenci numaralarını ve oğrenci adlarını gösterir.
-----------------------------------------------------------------------------|

Eğer gene bir diyalog olsaydı ilk sorgumuz söyle olurdu:


İnsan: Bütün sütunları göster.
SQL: Nerede?
İnsan: Ogrenciler tablosundan.
SQL: Anladım, işte sütunlar.


UNION terimi nedir?
(Bunu anlatmak için Murat Yücedağ'ın "SQL Ders 33 Union / Union All Kullanımı"daki görsel rotasını kullanacağım, anlaması kolay. SQL öğrenmek isteyenler için tavsiye ederim)


İstisnasız hepimizin en az bir kere kullandığı o kutsal terim peki ne olduğunu biliyor muyuz, gelin birlikte öğrenelim.


Öncellikle
kitap adlı veritabanında kitap diye bir tablomuz var.
(
Count sütun içindeki verileri sayar)
dvut4hg.PNG


İçinde 28 adet veri olduğunu öğreniyoruz. (bu veriler kitapad adlı sütunun içindeki verileri temsil eder)



Bir diğer tablomuzda ise
5yur2pj.PNG

Bu tabloda ise toplamda 12 veri olduğunu görüyoruz.
Toplamda 40 verimiz var.




Diyelim ki iki tablodaki tüm kitapları bize geri döndürmesini istiyoruz.
İste tam burada yardımımıza
UNION terimi yetişiyor
t3qfc1q.PNG

bu sayede iki tablodan da tüm verileri alabiliyoruz.

Not: Bu terim tekrar eden verileri içermez, eğer içermesini istiyorsanız "ALL" formatını da eklemeniz lazım.
Not: Eğer geri dönüş verilerinin veri tipi birbirinden farklıysa UNION çalışmaz.







Peki bizim SQL enjeksiyonlarında niye fazladan bir tablo yazmıyoruz? Sonuçta UNION terimi sadece iki tablo olduğunda geçerli.

Çünkü
request içinde zaten bir tablodan bir veri isteğinde bulunuyoruz örnek olarak:

c0v29rq.PNG



Orjinal Sorgu ile bizim sorgumuzu birleştirmek için
UNION terimini kullanıyoruz, düz olarak yeni bir sorgu ekliyemiyoruz çünkü bu SQL'ın doğasına aykırıdır.
Bu yüzden SQL enjeksiyonunda en önemli olan enjekte edebileceğimiz yeri bulmaktır, enjekte etmek değildir.







Beni dinlediğiniz için teşekkür ederim dostlar eğer bir hatam varsa affınıza sığınırım.
Mahlenizin dost canlısı acemi hackeri müsadenizi ister ve hepinize iyi günler diler.


yeni-uyeler-kulubu76d8b3792c188755.png
 

Muslukcu

Katılımcı Üye
17 Kas 2021
699
262
Tesisat dükkanı
Merhaba dostlar! Nasılsınız, mahlenizin dost canlısı ve acemi hackeri geri döndü. Benim gibi acemilerin bilmesi gereken en yegani konulardan birisidir.


SQL sorgusunu yapıyoruz ama çoğumuz ezbere yada sorguların ne olduğundan tam anlamıyla emin değil.
Buna çözüm olarak böyle bir konu açma gereğini duydum kullanılan genel terimlerin ne anlama geldiğini ve nasıl çalıştığından bahsediceğim.
Ve sizden istediğim bir şey olucak sizce bu genel terimler arasında baska hangi terimler var ve hangi terimleri anlatmamı istersiniz, lütfen bunu yorumlarda bahsedin.


Öncellikle sorgumuz neyin ne olduğunu nereden biliyor biraz ondan bahsedeceğim.
Bu sayede neden yetkimiz bazı verilere yetkimizin olmadığının bir sebebini anlamış olucaksınız.
Hemde
select ve from teriminin ne olduğunu anlamış olucaksınız.



Diyelim ki sorgumuz bir okulun veri tablosundan veri istesin.


(select)"ogrenci_numaraları"'nin verilerini ver (from)Ogrenciler tablosundan.



Bu enjeksiyonda, enjekte ettiğimiz SQL eğer okul verisinde daha önceden


use(kullan) okul(database)


execute edilmediyse imkanı yok siz okul veritabınından istediğiniz veriyi alamazsınız çünkü SQL orayı tanımıyor.



Diyelim ki SQL ile insan arasında bir diyalog olsun ve use "database" kullanılmamış olsun:

İnsan: Bütün sütunları göster, öğrenci tablosundaki.
SQL: nE?





Tablolar ve sütunlar nedir?





Size tek sefer de anlayabileceğiniz bir görsel sunacağım

as6lpwb.PNG


Bu veri tabanın da bulunan ogrenciler tablosudur. Üst taraf sütunlara işaret eder, Sütunların altındakiler de sütun içi verilerdir






SELECT ve FROM terimi


Select terimi hangi sütundan veri istediğinizi, from terimi ise bu sütunun nerede olduğunu işaret eder

-----------------------------------------------------------------------------|
Select * from ogrenciler(Database)

Tablonun içindeki bütün sütunları size gösterir size gösterir. (Bir nevi bütün tabloyu gösterir ama kullanılan terim bütün sütunları göstermesi içindir)
-----------------------------------------------------------------------------|
-----------------------------------------------------------------------------|

Select OgrNumara, OgrAd from ogrenciler

Tablo'da bulunan oğrenci numaralarını ve oğrenci adlarını gösterir.
-----------------------------------------------------------------------------|

Eğer gene bir diyalog olsaydı ilk sorgumuz söyle olurdu:


İnsan: Bütün sütunları göster.
SQL: Nerede?
İnsan: Ogrenciler tablosundan.
SQL: Anladım, işte sütunlar.


UNION terimi nedir?
(Bunu anlatmak için Murat Yücedağ'ın "SQL Ders 33 Union / Union All Kullanımı"daki görsel rotasını kullanacağım, anlaması kolay. SQL öğrenmek isteyenler için tavsiye ederim)


İstisnasız hepimizin en az bir kere kullandığı o kutsal terim peki ne olduğunu biliyor muyuz, gelin birlikte öğrenelim.


Öncellikle
kitap adlı veritabanında kitap diye bir tablomuz var.
(
Count sütun içindeki verileri sayar)
dvut4hg.PNG


İçinde 28 adet veri olduğunu öğreniyoruz. (bu veriler kitapad adlı sütunun içindeki verileri temsil eder)



Bir diğer tablomuzda ise
5yur2pj.PNG

Bu tabloda ise toplamda 12 veri olduğunu görüyoruz.
Toplamda 40 verimiz var.




Diyelim ki iki tablodaki tüm kitapları bize geri döndürmesini istiyoruz.
İste tam burada yardımımıza
UNION terimi yetişiyor
t3qfc1q.PNG

bu sayede iki tablodan da tüm verileri alabiliyoruz.

Not: Bu terim tekrar eden verileri içermez, eğer içermesini istiyorsanız "ALL" formatını da eklemeniz lazım.
Not: Eğer geri dönüş verilerinin veri tipi birbirinden farklıysa UNION çalışmaz.







Peki bizim SQL enjeksiyonlarında niye fazladan bir tablo yazmıyoruz? Sonuçta UNION terimi sadece iki tablo olduğunda geçerli.

Çünkü request içinde zaten bir tablodan bir veri isteğinde bulunuyoruz örnek olarak:

c0v29rq.PNG



Orjinal Sorgu ile bizim sorgumuzu birleştirmek için UNION terimini kullanıyoruz, düz olarak yeni bir sorgu ekliyemiyoruz çünkü bu SQL'ın doğasına aykırıdır.
Bu yüzden SQL enjeksiyonunda en önemli olan enjekte edebileceğimiz yeri bulmaktır, enjekte etmek değildir.







Beni dinlediğiniz için teşekkür ederim dostlar eğer bir hatam varsa affınıza sığınırım.
Mahlenizin dost canlısı acemi hackeri müsadenizi ister ve hepinize iyi günler diler.


yeni-uyeler-kulubu76d8b3792c188755.png
Elinize sağlık
 
12 Şub 2022
136
53
Tebriz
Merhaba dostlar! Nasılsınız, mahlenizin dost canlısı ve acemi hackeri geri döndü. Benim gibi acemilerin bilmesi gereken en yegani konulardan birisidir.


SQL sorgusunu yapıyoruz ama çoğumuz ezbere yada sorguların ne olduğundan tam anlamıyla emin değil.
Buna çözüm olarak böyle bir konu açma gereğini duydum kullanılan genel terimlerin ne anlama geldiğini ve nasıl çalıştığından bahsediceğim.
Ve sizden istediğim bir şey olucak sizce bu genel terimler arasında baska hangi terimler var ve hangi terimleri anlatmamı istersiniz, lütfen bunu yorumlarda bahsedin.


Öncellikle sorgumuz neyin ne olduğunu nereden biliyor biraz ondan bahsedeceğim.
Bu sayede neden yetkimiz bazı verilere yetkimizin olmadığının bir sebebini anlamış olucaksınız.
Hemde
select ve from teriminin ne olduğunu anlamış olucaksınız.



Diyelim ki sorgumuz bir okulun veri tablosundan veri istesin.


(select)"ogrenci_numaraları"'nin verilerini ver (from)Ogrenciler tablosundan.



Bu enjeksiyonda, enjekte ettiğimiz SQL eğer okul verisinde daha önceden


use(kullan) okul(database)


execute edilmediyse imkanı yok siz okul veritabınından istediğiniz veriyi alamazsınız çünkü SQL orayı tanımıyor.



Diyelim ki SQL ile insan arasında bir diyalog olsun ve use "database" kullanılmamış olsun:

İnsan: Bütün sütunları göster, öğrenci tablosundaki.
SQL: nE?





Tablolar ve sütunlar nedir?





Size tek sefer de anlayabileceğiniz bir görsel sunacağım

as6lpwb.PNG


Bu veri tabanın da bulunan ogrenciler tablosudur. Üst taraf sütunlara işaret eder, Sütunların altındakiler de sütun içi verilerdir






SELECT ve FROM terimi


Select terimi hangi sütundan veri istediğinizi, from terimi ise bu sütunun nerede olduğunu işaret eder

-----------------------------------------------------------------------------|
Select * from ogrenciler(Database)

Tablonun içindeki bütün sütunları size gösterir size gösterir. (Bir nevi bütün tabloyu gösterir ama kullanılan terim bütün sütunları göstermesi içindir)
-----------------------------------------------------------------------------|
-----------------------------------------------------------------------------|

Select OgrNumara, OgrAd from ogrenciler

Tablo'da bulunan oğrenci numaralarını ve oğrenci adlarını gösterir.
-----------------------------------------------------------------------------|

Eğer gene bir diyalog olsaydı ilk sorgumuz söyle olurdu:


İnsan: Bütün sütunları göster.
SQL: Nerede?
İnsan: Ogrenciler tablosundan.
SQL: Anladım, işte sütunlar.


UNION terimi nedir?
(Bunu anlatmak için Murat Yücedağ'ın "SQL Ders 33 Union / Union All Kullanımı"daki görsel rotasını kullanacağım, anlaması kolay. SQL öğrenmek isteyenler için tavsiye ederim)


İstisnasız hepimizin en az bir kere kullandığı o kutsal terim peki ne olduğunu biliyor muyuz, gelin birlikte öğrenelim.


Öncellikle
kitap adlı veritabanında kitap diye bir tablomuz var.
(
Count sütun içindeki verileri sayar)
dvut4hg.PNG


İçinde 28 adet veri olduğunu öğreniyoruz. (bu veriler kitapad adlı sütunun içindeki verileri temsil eder)



Bir diğer tablomuzda ise
5yur2pj.PNG

Bu tabloda ise toplamda 12 veri olduğunu görüyoruz.
Toplamda 40 verimiz var.




Diyelim ki iki tablodaki tüm kitapları bize geri döndürmesini istiyoruz.
İste tam burada yardımımıza
UNION terimi yetişiyor
t3qfc1q.PNG

bu sayede iki tablodan da tüm verileri alabiliyoruz.

Not: Bu terim tekrar eden verileri içermez, eğer içermesini istiyorsanız "ALL" formatını da eklemeniz lazım.
Not: Eğer geri dönüş verilerinin veri tipi birbirinden farklıysa UNION çalışmaz.







Peki bizim SQL enjeksiyonlarında niye fazladan bir tablo yazmıyoruz? Sonuçta UNION terimi sadece iki tablo olduğunda geçerli.

Çünkü request içinde zaten bir tablodan bir veri isteğinde bulunuyoruz örnek olarak:

c0v29rq.PNG



Orjinal Sorgu ile bizim sorgumuzu birleştirmek için UNION terimini kullanıyoruz, düz olarak yeni bir sorgu ekliyemiyoruz çünkü bu SQL'ın doğasına aykırıdır.
Bu yüzden SQL enjeksiyonunda en önemli olan enjekte edebileceğimiz yeri bulmaktır, enjekte etmek değildir.







Beni dinlediğiniz için teşekkür ederim dostlar eğer bir hatam varsa affınıza sığınırım.
Mahlenizin dost canlısı acemi hackeri müsadenizi ister ve hepinize iyi günler diler.


yeni-uyeler-kulubu76d8b3792c188755.png
Elinize sağlık
 
Ü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.