Categories
OWASP PortSwigger Vulnerability

SQL Injection – Lab #10 SQL Injection UNION Attack, Retrieving Multiple Values in a Single Column

UNION Attack ile Bir Sütuna Birden Fazla Veri Çekme

Uygulama benzer bir uygulama; öncesinde sütun sayısını, daha sonra sütun türlerini bulmamız gerekir. Daha sonra veritabanı versiyonunu SQL injection cheat sheet  yöntemleri ile öğrenmiştik. Yine bu yöntemler ile ekrana tek sütunda birden fazla sütun bilgisi çekeceğiz.

2 Sütundan oluştuğunu gösteren isteğin ekran görüntüsü

Sütun sayısı bulma işlemini tarayıcıda URL üzerinden NULL ya da ORDER BY ile de gerçekleştirebilirdik.

İlk sütunun text olmadığını gösteren isteğin ekran görüntüsü

Yine sütun türünü bulma işlemlerini de tarayıcıdan URL’e sorguyu yazarak bulabilirdik. Tüm bu istekler tarayıcıda çıktı olarak görünmektedir. Bizim aldığımız ekran görüntüleri genel itibari ile Burp Suite Repeater tabındaki görüntülerdir.

İkinci sütunun text olduğunu gösteren 200 OK isteğinin ekran görüntüsü

Text olan sütunu öğrendikten sonra bu sütunda “username” ve “password” sütunlarını birlikte yazdırabiliriz. Şimdi veritabanı versiyonunu öğreneceğiz. Bunun için SELECT’den sonra her veritabanı için özel olan çağırma işlemlerini deneyeceğiz.

Burp Suite Request versiyon çağırma ekran görüntüsü

Text olan ikinci sütun olduğu için orada versiyon bilgisini istedik ve 200 OK aldık. Tarayıcı ekran görüntüsü de aşağıdaki gibidir.

Burp Suite de render alınan tarayıcı ekran görüntüsü

SQL injection cheat sheet adresinde PostgreSQL veritabanı için 'foo'||'bar' şeklinde bir birleştirme verilmiş. Bunu kendi isteğimize uyarlıyoruz.

'+UNION+select+NULL,username||'*'||password+from+users-- // || İki tane pipe işaretinin arasına yıldız ( * ) işaretini metin gibi algılasın ve kullanıcı adı ile parolayı ayırsın diye yaptık.
Username ve password sütunlarının tarayıcı ekran görüntüsü
Login olduktan sonra alınan ekran görüntüsü

Elde ettiğimiz administrator kullanıcısı parolası ile giriş yapıyor ve labı tamamlıyoruz.

Leave a Reply

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