Categories
OWASP PortSwigger Vulnerability

SQL Injection – Lab #5 SQL Injection Attack, Listing the Database Contents on Non Oracle Databases

Oracle Dışındaki Veritabanlarında SQLi Saldırıları

Bu örnekte veritabanındaki kullanıcı adı ve parolaların olduğu tablo ve sütun bilgisini çekip daha sonra çektiğimiz administrator kullanıcı bilgisi ile giriş yapmamız beklenmektedir. Uygulamayı ziyaret ediyoruz category değişkenine tek tırnak ( ‘ ) atarak veritabanı hatası alıyoruz ve SQLi olduğunu emin oluyoruz. Burp Suite ile araya girerek veritabanı hakkında ne öğrenebiliriz ona bakacağız ama öncesinde sütun sayısını ve çıktıyı ekrana basacağımız text sütun kısmını bulmamız gerekmektedir. Sırası ile işlemleri gerçekleştiriyoruz.

Sütun sayısının belirlendiği istek ekran görüntüsü
'ORDER+BY+3--

3. sütunun listelenmesini istediğimizde hata aldık. Buradan tablonun 2 sütundan oluştuğunu tespit etmiş olduk. Daha sonra 1. ve 2. sütunlardan hangileri text girdi alıyor diye kontrol ettik. 2 sütun için de text veri kabul ettiğini gördük.

Text veri kabul eden sütunun belirlenmesi ekran görüntüsü

Text sütunlardan birinde ya da ikinsinde fark etmez SQL injection cheat sheet adresindeki veritabanı versiyon bulma komutlarını deneyeceğiz. Daha sonra veritabanı türünü bulunca direkt olarak tablo ve sütun bilgisi çekme sorgularını göndermeyi deneyeceğiz.

'UNION+SELECT+version(),'bilisimcikiz2'--
Versiyon bilgisini çektiğimiz sorgunun ekran görüntüsü

PostgreSQL için tablo bilgisi çekiyoruz.

'UNION+SELECT+table_name,'bilisimcikiz'+from+information_schema.tables--
Kullanıcı bilgilerinin olduğu tablonun belirlenmesi ekran görüntüsü

Kullanıcı bilgilerinin “users_jowqzh” tablosunda tutulduğunu görüyoruz. PostgreSQL için “SELECT * FROM information_schema.columns WHERE table_name = ‘TABLE-NAME-HERE'” sorgu ile sütun bilgisi çekebileceğimizi SQL injection cheat sheet adresinde görüyoruz. Tablo ismini bulduk ama “information_schema.columns” isimleri nasıl oluyor anlamak için kısa bir araştırma yapıyoruz.

Örnek Google araştırma ekran görüntüsü
'UNION+SELECT+column_name,+NULL+from+information_schema.columns+WHERE+table_name%3d+'users_jowqzh'--
Kullanıcı adı ve parolaların tutulduğu tabloların belirlendiği sorgu ekran görütüsü

Elde ettiğimiz bu sütun bilgileri ile yeni bir sorgu gönderiyoruz. Artık elimizde tablo ve sütun isimleri bulunuyor. Tek yapmamız gereken içeriğin bir sorgu ile çekilmesidir.

  • username_tqsccf
  • password_iolsok
'UNION+SELECT+username_tqsccf,+password_iolsok+from+users_jowqzh-- 
Tabloda yer alan username, password sütunları içindeki bilgilerin çekildiği ekran görüntüsü
Lab tamamlama ekran görüntüsü

Leave a Reply

Your email address will not be published. Required fields are marked *