Android Uygulamalarda SQL İnjection Açıklığı Tespiti

BGA Security Wiki sitesinden
Şuraya atla: kullan, ara

Amaç:

Mobil cihazlar üzerinde web açıklıklarının belirlenmesi.

Lab Senaryosu:

Db.apk uygulaması üzerinde, çeşitli payloadlar gönderilerek dönen cevaplara gore SQL injection açıklığı olup olmadığı yorumlanmıştır.

Araç:

  • Mobil Uygulama(db.apk)

Adımlar:

  • SQL injection açıklığının testi için bir önceki makalemizde kurduğumuz DB.apk uygulamasını kullanacağız. İlgili uygulama seçilerek açıldığında, aşağıdaki gibi kayıtlar girilebilen ve girilen kayıtlar içerisinden sorgulama yapılan bir mobil uygulama olduğu görülmektedir. Aşağıdaki gibi örnek bir kayıt giriyoruz.

App68.png

Insert diyerek ilgili kaydı veritabanına kaydedebiliriz. Ardından fetch ile istedigimiz bir kaydı sorgulayabiliriz.

  • Biz buraya, SQL injection açıklığını test edeceğimiz bazı payloadlar gönderip, cevaplarını gözlemleyebiliriz. Bunun için sorgu textbox'ına şu iki payloadu gönderip cevaplarına bakalım;
bga mobile pentest' and '2'='2 
bga mobile pentest' and '2'='3 

Aşağıda görüleceği üzere, bga mobile pentest' and '2'='2 şeklinde gönderilen payload için ilgili kaydımızı getirdi.

App681.png

  • Şimdi ise bga mobile pentest' and '2'='3 şeklinde yanlış bir matematiksel ifade ile sql injection olması durumunda, çalışmamasını beklediğimiz payloadu gönderiyoruz ve beklediğimiz gibi sonuç dönmüyor.

App682.png

Bu durumda, ilgili parametrede SQL injection açıklığı olduğunu tespit etmiş oluyoruz. Bu aşamadan sonra manuel veya otomatik tool’lar kullanılarak, yerel veritabanıdaki tüm datalara erişilebilir.

Kaynak:[değiştir]