Bu lab'de, product category filter üzerinden oluşan bir SQL Injection zafiyetini kullanarak veritabanı üzerinde ilerliyorum. Uygulama, sorgu sonuçlarını direkt response'ta gösterdiği için UNION tabanlı saldırı yapmak mümkün.

Hedef net: veritabanındaki kullanıcı bilgilerini tutan tabloyu bulmak, kolonları çıkarmak ve administrator hesabına erişmek.

Bu lab'de product category filter üzerinden SQL injection açığını kullanarak veritabanından kullanıcı bilgilerini çektim. Süreç boyunca hem klasik SQLi adımlarını hem de Oracle'a özel bazı detayları netleştirmiş oldum.

İlk olarak category parametresine tek tırnak (') göndererek başladım.

None

Bu aşamada uygulama hata verdi ve SQL injection yapılabildiğini doğrulamış oldum.

None

Sonrasında veritabanı hakkında bilgi almak için version sorgusu denedim.

Payload:

' UNION SELECT NULL,banner FROM v$version--
None

Response'ta Oracle versiyon bilgisi geldi.

Column sayısını bulmak için ORDER BY kullandım.

  • ORDER BY 2 → çalıştı
  • ORDER BY 3 → hata verdi
None

Buradan anladım ki:

→ Query 2 column döndürüyor

UNION attack için hangi column'ların string bastığını test ettim.

Oracle olduğu için FROM kullanmam gerekiyor, bu yüzden dual kullandım.

Payload:

' UNION SELECT 'a','b' FROM dual--
None

Response'ta hem a hem b göründü.

→ İki column da string basabiliyor

Artık veritabanını enumerate etmeye başladım.

Payload:

' UNION SELECT NULL,table_name FROM all_tables--
None

Tüm tablo isimleri geldi.

Buradan user ile alakalı olan tabloyu aradım.

User tablosunu bulduktan sonra kolon isimlerini çektim.

Payload:

' UNION SELECT NULL,column_name FROM all_tab_columns WHERE table_name='USERS_OQTEOY'--
None

Buradan şu kolonları elde ettim:

  • USERNAME_NWEUBM
  • PASSWORD_ZPMNGW

Son adımda direkt kullanıcı adı ve şifreleri çektim.

Payload:

' UNION SELECT NULL,PASSWORD_ZPMNGW,USERNAME_NWEUBM FROM USERS_OQTEOY--
None

Tüm kullanıcıların username ve password bilgileri geldi.

Buradan administrator kullanıcısının şifresini aldım.

Administrator kullanıcı bilgileriyle login oldum ve lab tamamlandı.

None