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.

'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 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'--

PostgreSQL için tablo bilgisi çekiyoruz.
'UNION+SELECT+table_name,'bilisimcikiz'+from+information_schema.tables--

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.

'UNION+SELECT+column_name,+NULL+from+information_schema.columns+WHERE+table_name%3d+'users_jowqzh'--

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--

