SQL Injection Nedir?

Zilant

Ar-Ge Ekibi Asistanı
25 Tem 2021
211
209
Kazan Şehri - Tataristan
SQL NEDİR?

Bilgileri ilişkisel bir veri tabanında depolamak ve işlemek için kullanılan sorgu tabanlı bir programlama dilidir. Veri tabanındaki bilgileri kaldırmak, değiştirmek, eklemek, aramak, güncellemek, depolamak ve almak için SQL ifadeleri kullanılabilir.

1970’lerde ilişkisel veri modeline dayatılarak ortaya çıkarılmıştır.

MySQL NEDİR?

Oracle tarafından sunulan açık kaynaklı veri tabanı yönetim sistemidir. Kullanmak için herhangi bir ücret ödenmesi gerekmez. MySQL, SQL sorguları kullanan bir ilişkisel veri tabanı programıdır.

NoSQL NEDİR?

NoSQL, verileri toplamak için tablo kullanmayan, ilişkisel olmayan veri tabanlarını ifade eder. NoSQL duyarlı, yoğun kullanımlı uygulamalar için uygundur.

İlişkisel Veri Tabanı Nedir?

İlişkisel veri tabanı, birbiriyle ilişkili veri noktalarını depolayan ve bunlara erişim sağlayan bir veri tabanı türüdür. Tablolar aracılığıyla daha kolay okunabilir, kullanılabilir ve ilişkisel bir biçimde verileri depolar.

İlişkisel Olmayan Veri Tabanı Nedir?

İlişkisel olmayan veri tabanı, çoğu geleneksel veri tabanı sisteminde bulunan satır ve sütunların tablo şemasını kullanmayan bir veri tabanı türüdür. Anlık veri tutarlılığından feda ederek yüksek performans ve hıza odaklandı.

SQL INJECTION NEDİR?

ABD merkezli Açık Web Uygulama Güvenliği Projesi (OWASP) Vakfı tarafından her sene siber güvenlik tehdidi olarak yılın top 10 listesi yayınlamaktadır. SQL Injection bu listede 3.sırada yer almıştır. Yani son derece yaygın ve tehlikeli bir saldırı türüdür. Sonuçları tüm bir sistemi yok etmeye, kullanıcıların hassas verilerinin (kredi kartı bilgileri, kimlik numaraları…) ele geçirilmesine kadar gidebilir.

SQL Injection, bir saldırganın web uygulamasının yapmış olduğu SQL sorgularına müdahale etmesine izin veren bir güvenlik açığıdır.

Örneğin bir giriş sayfasındaki güvenlik açığı sebebiyle saldırgan verileri transfer edebilir, değiştirebilir, silebilir. Erişilen tüm veriler manipüle edilebilir hale gelir.

SQL Injection saldırısı giriş yapma sayfaları, yorum yapma kutucukları, forumlar gibi yerlerde etkilidir. Kodlaması yanlış veya eksik yapılan bir metin veya sorgu dizisinin, kötü niyetli birisi tarafından kullanılarak sitenin arka planında çalışan SQL sorgularına müdahale ederek aslında görüntülemeye, düzenlemeye yetkisi olmayan verilere erişim sağlar.

Başka bir örnekte ise bir e-ticaret sitesinin ürün filtreleme kısmını ele alalım. Bu kısımda UNION kodunu ekleyerek başka tablolardan veri çeker ve kullanıcıların hassas verilerine erişim sağlayabilir. UNION kodu iki veya daha fazla sorgu sonuçlarını birleştirmek için kullanılır.

D6JiOFGXsAA-IwS.jpg

resimdeki örnekte görüldüğü gibi kullanıcı adı ve şifre girilmeden sisteme giriş yapılabiliyor. Bunun sağlanmasının sebebi:
SQL:
SELECT * FROM Users WHERE user_id='srinivas' AND password='mypassword'
kodunda kullanıcının doldurabildiği alanlar müdaheleye açık haldedir. Eğer bu alanlara doğruluğu kesin olan bir koşul girilirse kullanıcı adı ve şifre kontrolü gerçekleşmeden sisteme girilebilir. Şu şekilde doldurulursa sisteme girilmiş olur:
User Id: 'OR 1=1;/*
Password: */--
alanlar bu şekilde doldurulduğunda web sitesinin arka plannda şu şekilde bir sorgu oluşacaktır:
SQL:
SELECT * FROM Users WHERE user_id=''OR 1=1;/* and password='*/--'
bu sorgu sizi sisteme hiçbir kullanıcı bilginiz olmasına gerek kalmadan girmenizi sağlar.


SQL Injection Nasıl Engellenir?

Her zaman tüm yazılımlarınız güncel olsun.

Web sitenizdeki forum kısımlarına Captcha ekleyin.

Uygulamalarınızda çift faktörlü giriş seçeneğini yaygınlaştırın

Firewall kullanın

Uygulamanızın arka planda çalıştırdığı sorguları kontrol edin. NULL karakterlerin yer aldığı sorguları yeniden düzenleyin

Log toplayın

SQL Injection OSI Katmanlarının Neresindedir?

İlk önce OSI katmanlarını hatırlayalım.

  • Physical (Fiziksel Katman)
  • Data Link (Veri Bağlantı Katmanı)
  • Network (Ağ Katmanı)
  • Transport (Taşıma Katmanı)
  • Session (Oturum Katmanı)
  • Presentation (Sunu Katmanı)
  • Application (Uygulama Katmanı)


Her bir katmanın görevi bir üst katmana servis sağlamaktır. Verinin iletimi üst katmandan alt katmana doğrudur (uygulama katmanı -> fiziksel katman). Diğer bilgisayarda ise veri üstten alta doğru gider (fiziksel katman -> uygulama katmanı).



1.Fiziksel Katman

Fiziksel katman verinin kablo üzerinden alınacağı yapıyı tanımlar. Verileri bit olarak iletilir.

2.Veri Bağlantı Katmanı

Bu katman fiziksel katmana erişmek ve bağlantı kullanmak ile ilgili çeşitli kuralları belirler. Veriler ağ katmanından fiziksel katmana gönderilir. Bu süreçte veriler parçalara bölünür. Bu parçalara frame denir. Frameler verileri belirli bir kontrol içinde göndermeyi sağlayan paketlerdir.

3.Ağ Katmanı

Ağ katmanı, veri paketine farklı bir ağa gönderilmesi gerektiğinde yönlendiricilerin kullanacağı bilginin eklendiği katmandır. Veriler paketler halinde taşınır. IP protokolü bu katmanda çalışır.

4.Taşıma Katmanı

Taşıma katmanı üst katmanlardan gelen veriyi ağ paketi boyutunda parçalara böler. TCP, UDP, SPX protokolleri bu katmanda çalışır. Bu katmanda verileri segment halinde taşınır ve bu protokoller (TCP, UDP, SPX) hata kontrolü gibi görevleri de yerine getirir. Bu katman verinin uçtan uca iletimini sağlar.

5.Oturum Katmanı

Oturum katmanında iki bilgisayardaki uygulama arsındaki bağlantının yapılması, kullanılması ve bitirilmesi işlemleri yapılır. Bir bilgisayar aynı anda birden fazla bilgisayarla iletişim halinde olduğunda, doğru bilgisayarla iletişime geçebilmesini sağlar. Sunum katmanına gönderilecek veriler farklı oturumlarla birbirinden ayrılarak yapılır.

6.Sunuş Katmanı

En önemli görevi yollanan verinin karşı bilgisayarın anlayacağı şekilde çevrilmesidir. Verinin şifrelenmesi, açılması, sıkıştırılması da bu katmanda yapılır.

7.Uygulama Katmanı

Uygulama katmanı bilgisayar uygulaması ile ağ arasında bir arabirim sağlar. Sadece bu katman OSI katmanları arasında diğer katmanlara servis sağlamaz. Uygulamaların ağ üzerinde çalışmasını sağlar. Bu katman kullanıcıların gereksinimlerini karşılar. SSH, telnet, FTP, TFTP, SMTP, SNMP, http, DNS, protokolleri ve tarayıcılar bu katmanda çalışır. E-posta ve veri tabanı gibi uygulamalar bu katman aracılığıyla yapılır.


SQL Injection OSI katmanlarının Uygulama Katmanında yani 7.katmanında bulunur.

Buradaki bilgilerin hepsi eğitim için verilmiştir.
 
Son düzenleme:

S3SS1Z T3AM

Uzman üye
27 Nis 2019
1,424
712
HACKERİSTAN
Keşke birkaç komut satırında örnek verseydin, nerelerde hata oluştuğunu gösterseydin.Konu kopyala yapıştır olmuş bu sana birşey katmaz ama yinede Eline sağlık
 

Zilant

Ar-Ge Ekibi Asistanı
25 Tem 2021
211
209
Kazan Şehri - Tataristan
Güzel olmuş eline sağlık :)
teşekkürler :)

teşekkürler
resimlerle örnek vererek yapsaydın daha güzel olurdu eline emeğine sağlık
eleştiri için teşekkürler :) birkaç örnek resim bulup güncelliyorum
Keşke birkaç komut satırında örnek verseydin, nerelerde hata oluştuğunu gösterseydin.Konu kopyala yapıştır olmuş bu sana birşey katmaz ama yinede Eline sağlık
birkaç örnek kod satırı ekleyeceğim eleştiri için teşekkür ederim :)
 
Ü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.