DIVA Android
  • Damn Insecure and Vulnerable App (DIVA)
  • Pendahuluan
    • Persiapan
    • Konfigurasi Burp Suite dengan Android
    • Instalasi Aplikasi DIVA
  • Reversing of APK
    • Decompiling dan Reversing APK
  • Challenges
    • Insecure Logging
    • Hardcoding Issues - Part 1
    • Insecure Data Storage - Part 1
    • Insecure Data Storage - Part 2
    • Insecure Data Storage - Part 3
    • Insecure Data Storage - Part 4
    • Input Validation Issues - Part 1
    • Input Validation Issues - Part 2
    • Access Control Issues - Part 1
    • Access Control Issues - Part 2
    • Access Control Issues - Part 3
    • Hardcoding Issues - Part 2
    • Input Validation Issues - Part 3
Powered by GitBook
On this page
  • Pendahuluan
  • Penjelasan
  • Melihat Source Code
  • File URL Scheme
  • Kesimpulan

Was this helpful?

  1. Challenges

Input Validation Issues - Part 2

Exploiting Input Validation in Webview

PreviousInput Validation Issues - Part 1NextAccess Control Issues - Part 1

Last updated 4 years ago

Was this helpful?

Pendahuluan

Android Webview adalah komponen yang berfungsi agar developer bisa menyediakan akses web browsing kepada user dalam aplikasi mereka. Namun, menyematkan webview dapat menjadi berisiko jika tidak ditangani dengan benar. Hal ini terjadi karena beberapa browser memiliki kemampuan menjalankan seperti ftp://, http://, https://, file://, dll.

Dengan menggunakan URI scheme file://, Attacker bisa melihat konten yang ada di dalam penyimpanan lokal.

Serangan ini tidak memerlukan perangkat root atau aplikasi pada mode debug, cukup terdapat address bar untuk menginputkan URL.

Penjelasan

Bagian aplikasi yang akan kita bahas kali ini memiliki fitur webview. Kita akan mencari tahu apakah fitur ini rentan terhadap serangan melalui URI schemes.

Melihat Source Code

InputValidation2URISchemeActivity.class
package jakhar.aseem.diva;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.webkit.WebView;
import android.widget.EditText;

public class InputValidation2URISchemeActivity extends AppCompatActivity {
  public void get(View paramView) {
    EditText editText = (EditText)findViewById(2131492993);
    ((WebView)findViewById(2131492995)).loadUrl(editText.getText().toString());
  }
  
  protected void onCreate(Bundle paramBundle) {
    super.onCreate(paramBundle);
    setContentView(2130968609);
    ((WebView)findViewById(2131492995)).getSettings().setJavaScriptEnabled(true);
  }
}

Terlihat bahwa tidak ada validasi inputan atau whitelist untuk URI schemes, sehingga user bisa menggunakan URI scheme file:// untuk melihat isi konten dari perangkat tersebut.

File URL Scheme

file:///data/data/jakhar.aseem.diva/shared_prefs/jakhar.aseem.diva_preferences.xml

Terlihat bahwa file tersebut tampil pada webview. Ini membuktikan bahwa fitur tersebut bisa mengakses file yang ada di dalam perangkat.

Kesimpulan

Risiko yang bisa terjadi adalah aplikasi tersebut bisa mengakses konten yang ada di dalam perangkat.

Menyadari fakta tersebut, terdapat rekomendasi yang bisa developer lakukan, yaitu:

  • Membuat whitelist untuk URI schemes yang diperbolehkan.

Sebagai contoh kita akan melihat file .xml yang telah kita buat.

URI schemes
sebelumnya
Tampilan Soal Input Validation Issues - Part 2