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
  • Membuat Aplikasi Crash
  • Kesimpulan

Was this helpful?

  1. Challenges

Input Validation Issues - Part 3

Input Validation Failure in Native Library Files causing App Crash via Bufferoverflow

PreviousHardcoding Issues - Part 2

Last updated 4 years ago

Was this helpful?

Pendahuluan

Pada tantangan kali ini kita akan membuat aplikasi diva menjadi crash.

Anda mungkin sudah tahu bahwa Android APK bisa dibuat menggunakan Java, Kotlin serta seperti C, C++,dll. Dengan menggunakan , komponen Java dan C++ bisa saling berkomunikasi.

Penjelasan

Terdapat form input yang harus kita buat menjadi crash.

Melihat Source Code

DivaJni.java
package jakhar.aseem.diva;

public class DivaJni {
  private static final String soName = "divajni";
  
  static {
    System.loadLibrary("divajni");
  }
  
  public native int access(String paramString);
  
  public native int initiateLaunchSequence(String paramString);
}

Pada file tersebut terdapat array code[CODESIZEMAX] bertipe char dan CODESIZEMAX tersebut bernilai 20. Array tersebut digunakan untuk menampung inputan user. Sehingga jika user menginputkan lebih dari 20 karakter, maka aplikasi tersebut akan crash.

Membuat Aplikasi Crash

Silahkan inputkan string acak dengan lebih dari 20 karakter, maka aplikasi tersebut akan crash:

Kesimpulan

Aplikasi crash dikarenakan inputan user melebihi batas tampung array yang telah dideklarasikan.

Yang bisa dilakukan developer adalah melakukan sanitasi inputan baik pada frontend maupun backend.

Perhatikan file DivaJni.java, telihat bahwa ada pemanggilan native function initiatelaunchsequence(), jadi mari kita periksa file yang ada di dalam folder .

Untuk menganalisa penyebab crash, kita perlu membaca lengkapnya.

divaJni.c
Jni
source code
Native languages
Java Native Interface
Tampilan Soal Input Validation Issues - Part 3
Aplikasi Crash