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”

Printer 3D

Beberapa waktu yang lalu saya memesan kit printer 3 dimensi alias 3D Printer dari AliExpress. Harganya 255 USD dengan pajak 24 USD sampai ke Chiang Mai Thailand. Sejak beberapa tahun yang lalu harga printer ini terus menurun, 2 tahun yang lalu masih sekitar 1000 USD, lalu tahun lalu sudah sekitar 500 usd, dan tahun ini sudah setengahnya. Tadinya saya akan menunggu sebulan sebelum posting mengenai ini, tapi karena tiap hari sudah banyak yang bertanya, maka saya akan membuat posting awal sekarang, dan akan posting nanti beberapa minggu lagi.

Printer sudah dirakit

Sebagai informasi: berdasarkan cara kerjanya ada banyak jenis 3D printer di dunia ini, tapi yang masuk level harga untuk hobi (kurang dari 1000 USD) adalah jenis FFM (Fused Filament Manufacturing) atau nama lainnya adalah FDM (Fused Deposition Modeling) atau FFF (Fused Filament Fabrication). Printer dengan teknologi SLA (Stereolitography) harganya mulai turun, tapi printer murah jenis ini masih jarang sekali. Saya hanya akan membahas printer dengan teknologi FDM/FFM di posting ini.

Sebelum membeli printer 3D, sebaiknya minimal Anda membaca artikel yang saya temukan dua tahun yang lalu, supaya punya ekspektasi yang masuk akal (meski sudah dua tahun, isinya masih valid):

Lanjutkan membaca “Printer 3D”

Reverse Engineering

Salah satu hal yang sangat penting dalam bidang security adalah Reverse Engineering (RE). Hal-hal lain juga banyak yang penting, misalnya keahlian networking, programming, crypto, forensic, dsb tapi RE menjadi dasar bagi banyak hal dalam bidang security terutama tingkat lanjut. Dalam berbagai security CTF, nilai untuk RE dan pwning sangat tinggi dibanding challenge lain.

Apa sih reverse engineering (RE) itu? RE adalah proses untuk membongkar bahan dan teknologi yang ada pada suatu benda. Orang bisa mereverse engineer aneka macam hal, misalnya resep masakan atau benda elektronik, atau program. Tentunya dalam konteks ini, yang dimaksud adalah software reverse engineering, yaitu proses bagaimana kita bisa mengetahui algoritma program (atau source codenya jika mungkin).

Salah satu hal dasar yang dipakai bidang security adalah exploit. Para pentester memakai eksploit untuk masuk ke sistem, demikian juga para cracker. Exploit untuk berbagai OS komersial tertutup (Windows, OSX, iOS) pasti dihasilkan dari RE. Bahkan yang open source pun kadang butuh sedikit RE untuk membuat exploitnya (untuk memastikan berbagai address yang dihasilkan compiler).

Meskipun RE ini sangat penting, tapi sedikit yang mau dan bisa melakukannya. Kebanyakan sudah menyerah ketika memulai. Di posting ini saya ingin berusaha memotivasi orang-orang Indonesia yang tertarik bidang security, supaya levelnya naik nggak sekedar menyerang aplikasi web saja.

RE memang sulit, sangat teknis, butuh ketekunan kita harus mendalami sampai level kode mesin, sedangkan topik seperti SQL injection bisa dijelaskan dengan sangat mudah, dan bisa dikuasai dalam hitungan jam. Tapi apakah Anda memang hanya ingin jadi script kiddies saja? memanfaatkan exploit buatan orang selalu?

mrrobot

 

“Did you write that exploit yourself?”
“I had an hour”
“What you just pull code from Rapid 9 or some shit since when did you become a script kiddie?”
“I repeat I had an hour”
Mr Robot eps1.5_br4ve-trave1er.asf

Buat yang nggak ngerti: dia memakai “Rapid 9” karena sepertinya nggak boleh menghina Rapid 7 perusahaan security yang membuat Nexpose dan Metasploit yang banyak dipakai pentester dan juga script kiddies.

Lanjutkan membaca “Reverse Engineering”