Sql İnjection Nedir &Karşılaştığım Vaka

6 months ago 41
BOOK THIS SPACE FOR AD
ARTICLE AD

Ali

Herkese Merhaba, Bugün sizlere web güvenliği alanında bulunan bir zafiyetten biraz bahsetmek istiyorum. Hemde gerçek hayatta karşılaştığım bazı yerlerden bahsedeceğim.Yazıma geçmeden önce Aşağıdaki linkten beni takip edebilir ve yeni yazılarımdan haberdar olmak için takipte kalabilirsiniz.

https://www.linkedin.com/in/ali-kostak-83356b217/

SQL İNJECTİON NEDİR ?

Web uygulamanızın veritabanında hacker’ın kendi sql sorgularını çalıştırabildiği ve veritabanını dump edebildiği kritik bir saldırı yöntemidir.

SQL Injection Türleri:

A-Union based sql injection:

Bu saldırı türünde, saldırgan UNION operatörünü kullanarak SQL sorgusuna başka bir sorguyu ekler. UNION, saldırganın veritabanındaki farklı tabloları birleştirmesine ve verileri ele geçirmesine olanak tanır.

B-Blind sql injection:

Bu saldırıda , saldırganın veritabanından doğrudan hata mesajları veya sonuçlar almaz. fakat, saldırgan mantıksal ifadeleri kullanarak doğru ve yanlış koşullarıyla veritabanından veri çıkartabilir.

C-Error based sql injection:

Bu saldırıda , saldırgan SQL sorgusunda bir hata oluşturarak veritabanından hata mesajlarını elde etmeye çalışır.

D-Time based sql injection:

Bu saldırıda ise veriyi hiçbir şekilde hata mesajı veya doğru yanlış koşullarıyla değilde , saldırganlar sorgunun işlem süresini etkileyerek doğru ve yanlış koşullarını test ederler.

PEKİ BENİM RAPORUM NEYDİ?

Web uygulaması bir Ecommerce platformuydu. Ürünün bir yerinde şehirlerdeki mağazaları yükleyen bir yer buldum .Mağaza seçme alanına geldiğimde POST isteği ile şehirdeki mağazayı yüklüyordu. Bende“id”si (2625) olan bir mağazayı seçtim, veriyi sorgunun sonucunda görebildiğimiz için union based sql injection üzerinden yürümek istedim.

Nasıl Tespit Ettim:

POST isteğinde giden “store_id” parametresine “2625–1” yazdığımda bir veri dönmüyordu bir kaç deneme daha yaptıktan sonra bırakmayı düşündüm fakat bir şey aklıma geldi. Bu platform güncellendi ve eskiden giden isteklerde content type’i application/x-www-form-urlencoded olduğunu biliyordum. Fakat şuan application/json olarak gidiyordu. Yaptığım şey isteği değiştirmek oldu ve “2625–1“ yazıp yeniden gönderdim. ve 2624 id değerine sahip bir mağazanın bilgilerini veri olarak döndü

Nasıl Sömürdüm:

Arık zafiyeti tespit ettiğime göre zafiyeti sömürmek için artık UNİON kullanabilirdim. ama union’ın bir koşulu var tabiki sol taraftaki kolon sayısı ile sağ taraftaki select sorgusunun aynı kolon sayılarına eşit olması gerekiyor o yüzden tek tek ilerlerdim ve bundan sonra bazı verileri response üzerinde gördüm bu alanlara artık information_schema üzerinden istediğim tabloları ve kolonları çekmek kolay oldu

Başka yazılarda görüşmek üzere,Sağlıcakla Kalın…

Read Entire Article