0'dan Temellendirme - Aslında SQL Enjekte etmek kolaydır 0.2

memu.exe

Üye
24 Mar 2023
70
63
lol
yo yo nasılsınız dostlar!
gxyoq2y.png


Sıfırdan temellendirme serimizde bu gün SQL Injection kısmına bakacağız.
Tabi öncellikle
SQL'ı doğru bir bakış açışıyla anlamalıyız, bunun için hali
hazırda bir
konu açmıştım onun yeterince iyi olduğunu düşünüyorum o yüzden bu
konuyu okumadan önce SQL hakkında bilgi sahibi değilseniz bir diğer konumu okumanızı

tavsiye ederim.

Bu temellendirme dersinde öğrenecekleriniz

*SQL Injection temeli

*SQL Injection ile sayfa içinde gözükmeyen datalara ulaşma




Basitçe SQL Injection:

Websiteye girdiğinizde, website üzerinde herhangi bir yönlendiriciye tıkladığınızda,
bilgisayarınız sayfa kodlarına göre bir istek oluşturur bunun en temel örneği;
bir market web sitesi üzerinde hediye kategörisine tıkladığınızı var sayalım, bilgisayarınız
söyle bir istek oluşturur:


SELECT * FROM products WHERE category = 'Gifts' AND released = 1

Ardından bu isteği serverın database'ine yollar ve veriler bilgisayarınızda okutulup yansıtılır.
Kısaca oluşan görsel söyledir:

735ima7.png


ve bu isteğiniz bize yönlendireceği bilgileri sıralarsak söyle gözükücektir:

tvbckyf.PNG


Burada ki select, from vb. nin anlamı söyledir:
SELECT(x): Seç
*: Bütün sütunları
FROM(x): X'teki
WHERE(x,y): From'un x'inden = y'i al
AND: ve


Tüm kelimeleri yerlerine yerleştirdiğimizde
Seç bütün sütunları, prroducts'taki kategörilerde ki gifts'i al ve released değeri 1 olanları ver.
(Biliyorum, ilk başta anlaması epey karmaşık geliyor ve baya saçma gözüküyor, inanın bana bu gün yatmadan önce 1 2 dk'nızı
ayırsanız anında anlarsınız, gene de hala anlamayanlar SQL'ı doğru bakış açışıyla anlamak konuma bakabilir olabildiğince
detaylı anlattım, anlayacağınıza garanti verebilirim.)








Fark ettiğiniz üzere bu istek bize sadece released yani yayınlanmış ürünleri gösteriyor peki veritabanı üzerinde
bulunan ve yayınlanmış ürünleri göremez miyiz?

Tabi ki görebiliriz, eğer released değerini her zaman 1 olacak sekilde ayarlarsak bize yayınlanmamış yani veritabanında
bize gösterilmeyenleri görmemizi sağlayacaktır;



SELECT * FROM products WHERE category = 'Gifts' AND released = 1'+or+1=1--+-
(sondaki "--+-" router'a 'hacı ben bura bir şeyler ekledim haberin ola' diyor)

fhuql8y.PNG


yani released = 1' yada 1=1'dir kısaca veritabanı üzerinde bulunan her hangi bir gift ögesi'nin released değeri 0 olsa bile
bize gösterecektir.


Bunu 9. sınıf mantık konusu gibi düşünün sadece 0 vardı biz onu 0v1 yaptık bu durumda her zaman bize 1 değerini geri
döndürücektir.



Örnek olarak bunu siz yanıtlayın;

SELECT * FROM products WHERE category = 'Gifts' AND
released = 0

eğer böyle olsaydı ne yapmalıydık? Yorumlarda yanıtlarınızı bekliyorum.




Dostlar bu günki konumuz bu kadardı umarım yardımcı olabilmişimdir, hatam varsa affınıza sığınırım
aklınıza bir şey takıldıysa yorumlarda belirtmekten çekinmeyin. SQL injection yapmak için acele etmeyin
gelecekte bu konu üzerine emin olun fazla kez değineceğim aklınızı erkenden karıştırmak istemiyorum
ayrıca renk kullanımım iyice 9 yaşında ki çocukların karalamasına benzedi
renk tercihim için bana tavsiye verebilir misiniz?

gerçekten 9 yaşında bir çocuk gibi boyamışım tüm kelimeleri
 

Butcherb3y

Uzman üye
1 Eyl 2022
1,547
1,148
Anıtkabir
yo yo nasılsınız dostlar!
gxyoq2y.png


Sıfırdan temellendirme serimizde bu gün SQL Injection kısmına bakacağız.
Tabi öncellikle
SQL'ı doğru bir bakış açışıyla anlamalıyız, bunun için hali
hazırda bir
konu açmıştım onun yeterince iyi olduğunu düşünüyorum o yüzden bu
konuyu okumadan önce SQL hakkında bilgi sahibi değilseniz bir diğer konumu okumanızı

tavsiye ederim.

Bu temellendirme dersinde öğrenecekleriniz


*SQL Injection temeli
*SQL Injection ile sayfa içinde gözükmeyen datalara ulaşma




Basitçe SQL Injection:

Websiteye girdiğinizde, website üzerinde herhangi bir yönlendiriciye tıkladığınızda,
bilgisayarınız sayfa kodlarına göre bir istek oluşturur bunun en temel örneği;
bir market web sitesi üzerinde hediye kategörisine tıkladığınızı var sayalım, bilgisayarınız
söyle bir istek oluşturur:


SELECT * FROM products WHERE category = 'Gifts' AND released = 1

Ardından bu isteği serverın database'ine yollar ve veriler bilgisayarınızda okutulup yansıtılır.
Kısaca oluşan görsel söyledir:

735ima7.png


ve bu isteğiniz bize yönlendireceği bilgileri sıralarsak söyle gözükücektir:

tvbckyf.PNG


Burada ki select, from vb. nin anlamı söyledir:
SELECT(x): Seç
*: Bütün sütunları
FROM(x): X'teki
WHERE(x,y): From'un x'inden = y'i al
AND: ve



Tüm kelimeleri yerlerine yerleştirdiğimizde
Seç bütün sütunları, prroducts'taki kategörilerde ki gifts'i al ve released değeri 1 olanları ver.
(Biliyorum, ilk başta anlaması epey karmaşık geliyor ve baya saçma gözüküyor, inanın bana bu gün yatmadan önce 1 2 dk'nızı
ayırsanız anında anlarsınız, gene de hala anlamayanlar SQL'ı doğru bakış açışıyla anlamak konuma bakabilir olabildiğince
detaylı anlattım, anlayacağınıza garanti verebilirim.)








Fark ettiğiniz üzere bu istek bize sadece released yani yayınlanmış ürünleri gösteriyor peki veritabanı üzerinde
bulunan ve yayınlanmış ürünleri göremez miyiz?

Tabi ki görebiliriz, eğer released değerini her zaman 1 olacak sekilde ayarlarsak bize yayınlanmamış yani veritabanında
bize gösterilmeyenleri görmemizi sağlayacaktır;



SELECT * FROM products WHERE category = 'Gifts' AND released = 1'+or+1=1--+-
(sondaki "--+-" router'a 'hacı ben bura bir şeyler ekledim haberin ola' diyor)

fhuql8y.PNG


yani released = 1' yada 1=1'dir kısaca veritabanı üzerinde bulunan her hangi bir gift ögesi'nin released değeri 0 olsa bile
bize gösterecektir.


Bunu 9. sınıf mantık konusu gibi düşünün sadece 0 vardı biz onu 0v1 yaptık bu durumda her zaman bize 1 değerini geri
döndürücektir.



Örnek olarak bunu siz yanıtlayın;

SELECT * FROM products WHERE category = 'Gifts' AND released = 0

eğer böyle olsaydı ne yapmalıydık? Yorumlarda yanıtlarınızı bekliyorum.



Dostlar bu günki konumuz bu kadardı umarım yardımcı olabilmişimdir, hatam varsa affınıza sığınırım
aklınıza bir şey takıldıysa yorumlarda belirtmekten çekinmeyin. SQL injection yapmak için acele etmeyin
gelecekte bu konu üzerine emin olun fazla kez değineceğim aklınızı erkenden karıştırmak istemiyorum
ayrıca renk kullanımım iyice 9 yaşında ki çocukların karalamasına benzedi
renk tercihim için bana tavsiye verebilir misiniz?

gerçekten 9 yaşında bir çocuk gibi boyamışım tüm kelimeleri
Elinize sağlık hocam dikkatlice okuyacan yine
 
Ü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.