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
  • Penyelesaian
  • Melihat Source Code
  • Kesimpulan

Was this helpful?

  1. Challenges

Hardcoding Issues - Part 1

Hardcoding Sensitive Information within Android APK a Security Risk

PreviousInsecure LoggingNextInsecure Data Storage - Part 1

Last updated 4 years ago

Was this helpful?

Pendahuluan

Seringkali developer melakukan kesalahan dengan menyimpan informasi sensitif pada source code aplikasi seperti: password, PIN, token, informasi internal development, dan sebagainya. Baik dilakukan secara sengaja maupun tidak disengaja untuk mempermudah developer dalam menyimpan informasi sensitif pada aplikasi.

Reverse Engineering adalah proses untuk mendapatkan kembali source code dari binari yang telah dikompilasi seperti APK. Jadi dengan melakukan reverse engineering kita bisa mendapatkan source code (tidak 100%) dari binari aplikasi tersebut.

Untuk mempelajari lebih lanjut tentang reverse engineering, Anda bisa membaca artikel dari .

Penyelesaian

Bagian aplikasi yang akan kita bahas kali ini memiliki fitur validasi vendor key untuk mendapatkan akses.

Melihat Source Code

HardcodeActivity.class
package jakhar.aseem.diva;

import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class HardcodeActivity extends AppCompatActivity {
  public void access(View paramView) {
    if (((EditText)findViewById(2131492987)).getText().toString().equals("vendorsecretkey")) {
      Toast.makeText((Context)this, "Access granted! See you on the other side :)", 0).show();
      return;
    } 
    Toast.makeText((Context)this, "Access denied! See you in hell :D", 0).show();
  }
  
  protected void onCreate(Bundle paramBundle) {
    super.onCreate(paramBundle);
    setContentView(2130968607);
  }
}

Perhatikan baris ke-12. Validasi yang dilakukan oleh program langsung menggunakan informasi sensitif, yaitu nilai dari vendor key yang valid (vendorsecretkey).

Sekarang kita bisa mendapatkan akses pada fitur tersebut, karena kita bisa mendapatkan vendor key yang valid dengan melakukan reverse engineering.

Kesimpulan

Kita akan mencoba mencari vendor key yang valid dengan melakukan pada APK dan mencari kerentanan hardcoding yang mungkin developer menyimpan informasi vendor key pada source code.

Developer seharusnya tidak menyimpan informasi sensitif seperti credentials ke dalam source code. Walaupun terdapat teknik untuk mempersulit seseorang melakukan reverse engineering, hal tersebut tidak sepenuhnya menghentikan kegiatan reverse engineering.

reversing engineering
obfuscation
yohan.es
Tampilan Soal Hardcoding Issues - Part 1