Hacking In App Purchase

Di artikel ini saya akan membas teknis hacking In App Purchase (IAP) Sebelum membahas teknis hacking IAP, saya perlu menegaskan dulu bahwa saya tidak setuju dengan berbagai bentuk pembajakan. Di artikel ini saya akan menyinggung Apple App Store, tapi pembahasan akan lebih banyak ke Android (karena sekarang ini saya lebih banyak memakai Android). Saya sengaja tidak melink ke berbagai tool hacking yang saya sebutkan di sini, silakan dicari sendiri.

Jangan Membajak

Sebagai developer saya tahu betapa tidak enaknya jika karya kita dibajak. Saya selalu berusaha membeli semua hal secara legal. Semua software yang saya pakai saya beli atau memakai versi gratis. Saya membeli OS Windows, membeli Office (sekarang subscribe Office 365), dan juga membeli tools-tools yang memang berguna saya, misalnya saya membeli/subscribe IntelliJ ultimate, VMWare Fusion, dsb. Saya juga berusaha membeli segala macam produk digital lain, seperti musik (dari iTunes), film (subscribe NetFlix, atau menonton dari Youtube), buku (membeli dari Amazon Kindle ataupun Google Play Books). Lanjutkan membaca “Hacking In App Purchase”

Password

Password adalah metode autentikasi yang paling umum. Password memiliki banyak kelebihan, tapi juga banyak kekurangan. Contoh kelebihannya: sangat sederhana, mudah dishare, tidak butuh hardware khusus. Sementara itu kelemahan password: mudah dishare artinya bisa disalin dengan mudah, bisa dibruteforce, bisa terjadi password reuse, dsb.

Saat ini masalah yang sangat umum adalah ini: orang memakai password yang sama di berbagai layanan. Jika satu layanan jebol, dan password Anda ketahuan untuk semua situs lain (bisa dengan bruteforce/dictionary attack, bisa juga situs itu menyimpan plaintext password). Banyak situs kecil yang passwordnya bocor (atau mungkin bahkan pemilik situsnya jahat), tapi jangan kira situs besar tidak bisa bocor.

Selain kebocoran dari berbagai situs, password juga kadang bisa didapatkan dari mengendus (sniff) paket jaringan. Password juga bisa dengan mudah didapat dari menggunakan keylogger (program atau hardware yang menyimpan setiap tombol yang Anda tekan).

Ada berbagai solusi yang ditawarkan untuk masalah password ini, dari mulai tidak menyimpan password, menyimpan password, mengganti atau menambahkan autentikasi lain.

Lanjutkan membaca “Password”

Bug Gojek (Agustus 2015)

Tulisan berikut ini ditulis akhir bulan Desember 2015. Saya sudah mengirimkan ini ke pihak Gojek dan mereka minta waktu untuk perbaikan. Mereka meminta saya menunda sampai tanggal 10 Januari 2016 untuk menerbitkan ini.

Karena saya sudah mengecek bug gojek dua kali (Agustus dan Desember 2015), saya tidak mengecek lagi apakah bug-bug ini saat ini masih ada atau tidak (capek lah ngecek terus, ini kan kerjaan iseng gak dibayar). Tulisan ini tidak diedit lagi (jadi jika Anda membaca “saat ini bug masih ada” artinya itu masih ada ketika tulisan ini dibuat, yaitu akhir Desember 2015).

Yang perlu saya tambahkan: bug yang ada kemungkinan bukan hanya yang saya tulis di bawah ini, masih ada banyak lagi (ada puluhan endpoint API gojek, banyak yang berpotensi punya bug). Karena saya berlokasi di Thailand, saya hanya bisa melakukan testing terbatas (bahkan saya belum pernah mencoba memakai Gojek secara langsung). Silakan coba-coba untuk memeriksa bagi yang iseng mencoba (saya sudah membuat tulisan bagaimana melakukan Reverse Engineering APK Android sebagai panduan bagi pemula).

—————-

Jika Anda belum membaca, sebaiknya baca dulu pengantar seri ini: Mencari dan melaporkan bug security. Perlu dicatat: bug ini sudah dilaporkan (akhir sejak Agustus 2015). Sebagian sudah diperbaiki, tapi banyak lagi belum. Bug ini juga sudah ditemukan banyak orang lain (saya sempat melempar pertanyaan ini di facebook wall saya, dan hasilnya saya dijapri beberapa orang).

Gojek
Lanjutkan membaca “Bug Gojek (Agustus 2015)”

Bug Mandiri e-Money Isi Ulang (November 2015)

Jika Anda belum membaca, sebaiknya baca dulu pengantar seri ini: Mencari dan melaporkan bug security. Perlu dicatat: bug ini sudah dilaporkan (akhir November 2015), sudah (sebagian besar) diperbaiki. Posting ini hanya untuk pelajaran bersama.

Kartu mandiri e-money adalah stored value card dengan teknologi NFC. Tadinya proses isi ulang tidak bisa dilakukan dari ponsel, tapi sejak sekitar Februari 2015, aplikasi isi ulang diluncurkan untuk ponsel Android dengan NFC.

NFC

Saya sudah agak lama memiliki beberapa kartu mandiri e-money dengan saldo sedikit sekali dari adik saya, tapi belum sempat mengeksplore kartu ini (dulu saya pernah minta diberikan berbagai kartu prabayar Indonesia). Pada hari saya menemukan bug ini, ada dua hal yang terjadi: adik saya mengirimkan ADB log menanyakan bug aplikasi Android yang ditulisnya, dan kebetulan saya mendapat pekerjaan checking implementasi NFC bank lain dan menemukan blog ini.

Saya tidak tahu apakah ada yang sudah menemukan bug ini sebelumnya, dari blog yang saya sebutkan sebelumnya, sepertinya dia tidak menemukan bug (karena APDU tidak bisa diplayback).

Lanjutkan membaca “Bug Mandiri e-Money Isi Ulang (November 2015)”

Bug Zohib Messenger (Juni 2015)

Jika Anda belum membaca, sebaiknya baca dulu pengantar seri ini: Mencari dan melaporkan bug security. Perlu dicatat: bug ini sudah dilaporkan (6 bulan yang lalu), sudah diperbaiki. Posting ini hanya untuk pelajaran bersama.

Sejujurnya: Sebelumnya saya belum pernah denger aplikasi Zohib Messenger (ZM) ini. Ternyata setelah dicari-cari, aplikasi ini pernah jadi aplikasi resmi Kominfo untuk para pemudik.

Saya ringkaskan dulu bug-bug yang saya temui sebelum masuk ke bagian cerita detail:

  • Username/password kita disimpan di database dalam bentuk plaintext
  • SSL dengan self signed certificate, dan certificatenya tidak dicek
  • Unauthenticated/sessionless API access

Karena bug terakhir ini cukup umum, saya jelaskan lebih lanjut untuk yang awam: ketika kita login, server biasanya akan mengirimkan token atau session id random, sebagai bukti siapa diri kita, dan bahwa kita diberi akses oleh server. Jadi setiap request berikutnya, kita perlu mengirimkan lagi session id atau token ini. Analoginya begini: kalau saya mau masuk komplek tertentu di sini, saya perlu memberikan ID saya, lalu saya akan diberi kartu pengunjung. Kartu ini dikenali oleh semua satpam, jadi mereka tahu saya ini pengunjung, dan satpam juga bisa membantu atau membatasi (misalnya: “mas, maaf gak boleh parkir di sini, nanti Bu Dewi nggak bisa lewat”).

Lanjutkan membaca “Bug Zohib Messenger (Juni 2015)”

Mencari dan melaporkan bug security

Tulisan ini adalah pengantar untuk tulisan-tulisan saya berikutnya dalam topik security yang akan saya publish dalam beberapa hari (atau minggu) ke depan. Saya akan mendeskripsikan bug-bug yang cukup fatal dalam beberapa aplikasi Indonesia yang saya temukan. Semua bug ini sudah diperbaiki, jadi tidak berbahaya bagi siapapun. Yang sudah saya rencanakan adalah: Gojek, Zohib Messenger, dan Mandiri e-Money.

Bug World

Sebagian akan ada yang mempertanyakan: untuk apa mendeskripsikan bug yang sudah diperbaiki? nanti cuma akan mempermalukan perusahaan itu saja, tidak ada gunanya!. Mendeskripsikan bug sudah merupakan hal yang sangat lazim dilakukan setiap hari di dunia security. Bahkan Google juga memeriksa bug-bug software perusahaan lain melalui Project Zero, di blog project zero, Anda bisa melihat berbagai bug dari mulai Antivirus sampai sistem operasi.

Lanjutkan membaca “Mencari dan melaporkan bug security”

Tips Android: XPosed Framework dan XPrivacy

Kalau dulu saya nulis tips soal Blackberry, gantian sekarang mau menulis soal Android. Sekarang ini saya mau tulis soal aplikasi yang menarik, tapi sepertinya nggak banyak diketahui orang.

XPosed Framework adalah framework yang memungkinkan untuk membuat (dan menjalankan) aplikasi yang bisa mengintercept API Android apapun. Ada banyak modul yang memanfaatkan framework ini, salah satunya adalah XPrivacy. Dengan XPrivacy, kita bisa memblock atau menipu aplikasi Android yang meminta akses tertentu. Aplikasi ini butuh root access, jadi Android Anda perlu bisa diroot. Perhatikan bahwa aplikasi ini hanya untuk Anda yang cukup expert bermain Android.

Saya berikan beberapa contoh kemampuan modul Xprivacy ini. Ketika sebuah aplikasi atau game meminta koneksi Internet, kita bisa bilang: sedang tidak ada koneksi internet. Ketika aplikasi berusaha mengakses SD Card, aplikasi bisa ditipu dengan menyatakan bahwa SD Card tidak dimasukkan. Aplikasi ini gratis, tapi ada fitur ekstra di Versi pro, misalnya bisa merestriksi aplikasi yang membaca contact list agar bisa membaca dari account tertentu saja. Restriksi ini bisa dilakukan permanen, atau setiap 15 detik. Misalnya kita cuma perlu akses internet sekali untuk aktivasi, kita bisa ijinkan sekali saja, lalu sisanya tidak diijinkan.

Lanjutkan membaca “Tips Android: XPosed Framework dan XPrivacy”