Untuk bisa membuka aplikasi lain dari aplikasi kita, biasanya kita menggunakan Intent dengan menyebutkan nama kelas Activity yang ingin kita tuju. Namun, jika Activity yang ingin kita buka sudah mengatur android:exported=”false” di file manifest-nya, kita tidak bisa menggunakan cara tersebut. Salah satu cara alternatifnya adalah dengan menggunakan deep link.
Deep link adalah cara lain yang bisa kita gunakan untuk masuk langsung ke layar tertentu di dalam aplikasi, meskipun aplikasi tersebut berada di luar kendali kita.
Understanding Deep Links and their Vulnerabilities
Deep links adalah URL yang dirancang khusus untuk membuka aktivitas tertentu dalam sebuah aplikasi. Ini dapat dipicu dari berbagai sumber, seperti web pages, push notifications, atau aplikasi lain. Di Android, deep links dapat diklasifikasikan menjadi Scheme URLs, App Links, dan Intent URLs. Scheme URLs adalah implementasi awal yang memungkinkan aplikasi apa pun untuk mendaftarkan skema kustom, host, dan path. Kekurangan validasi ini membuka peluang adanya link hijacking, di mana malicious app menyusupkan sebuah link yang seharusnya untuk aplikasi lain. Kesalahan konfigurasi dan proses verifikasi yang tidak tepat masih dapat membuat aplikasi rentan terhadap link hijacking dan data interception.
Risks and Exploitations of Deep Links
Deep links dapat menghadirkan berbagai risiko dan eksploitasi pada aplikasi jika tidak diamankan dengan baik. Kerentanan umum dan potensi diantaranya :
- Phishing Attacks (Serangan Phising): Deep links yang tidak diotentikasi dengan benar dapat dimanfaatkan oleh penyerang untuk mengarahkan pengguna ke situs web palsu yang meniru tampilan situs asli. Hal ini dapat menyebabkan pengguna untuk memasukkan informasi sensitif seperti kata sandi atau informasi kartu kredit ke dalam situs palsu, yang kemudian dapat disalahgunakan oleh penyerang.
- Malware Distribution (Penyebaran Malware): Penyerang dapat menggunakan deep links untuk mengarahkan pengguna ke situs web yang mengandung malware atau untuk mengunduh file berbahaya secara otomatis ke perangkat pengguna. Hal ini dapat mengakibatkan infeksi perangkat dan potensi kehilangan data atau kerusakan sistem.
- Data Interception (Pencurian Data): Deep links yang tidak dienkripsi atau tidak diamankan dapat menyebabkan data sensitif yang dikirim melalui tautan tersebut disadap oleh penyerang. Informasi pribadi atau rahasia yang dikirimkan melalui deep links yang rentan dapat disalahgunakan untuk pencurian identitas atau tujuan lainnya.
- Man-in-the-Middle Attacks (Serangan Man-in-the-Middle): Penyerang dapat mencoba menyisipkan diri di antara pengguna dan server untuk mencuri atau memanipulasi data yang dikirim melalui deep links. Hal ini dapat terjadi jika deep links tidak dienkripsi atau jika koneksi tidak aman.
- Link Hijacking (Pengalihan Tautan): Penyerang dapat mencoba mengalihkan deep links yang ditujukan untuk aplikasi tertentu ke aplikasi lain atau ke situs web yang berbahaya. Ini dapat membingungkan pengguna dan memungkinkan penyerang untuk mencuri informasi atau mengakses fitur aplikasi yang tidak seharusnya.
- Identity Theft (Pencurian Identitas): Deep links yang rentan dapat digunakan oleh penyerang untuk mencuri informasi pribadi pengguna, seperti nama, alamat, atau nomor kartu kredit. Informasi ini kemudian dapat digunakan untuk melakukan pencurian identitas atau penipuan online lainnya.
- Unauthorized Access (Akses Tanpa Izin): Deep links yang tidak terlindungi dengan baik dapat membuka akses ke fitur atau data sensitif dalam aplikasi tanpa otorisasi yang sesuai. Ini dapat mengakibatkan kebocoran data atau penggunaan yang tidak sah dari aplikasi tersebut.
Deep Link Exploitation
Untuk prakteknya, saya akan menggunakan aplikasi AllSafe. untuk source nya kalian bisa download disini.
Buka file .apk menggunakan Jadx. Kemudian arahkan ke file AndroidManifest.xml
Pada langkah berikutnya, tekan Control + F untuk membuka search-box dan carilah “android:scheme”. Alasannya kita mencari “android:scheme” adalah bahwa setidaknya, tag <data> harus mencakup atribut android:scheme.
Terlihat pada gambar diatas, aplikasi memiliki dua skema yang berbeda (allsafe:// dan https://).