Missing CSRF Token that could Illegally Send a Message

dokumen-dokumen yang mirip
Missing CSRF Token that could Illegally Delete the Conversation

Token s Problem that could result of Unrestricted Deletion of People s Bank Account and User s Bank Account Enumeration

Content Injection at Accounts Page that could Result Reflected Cross Site Scripting

Bypassing the Limitation of Brute Force Attack on Microsoft Service Account that could Lead to Account Take Over

LINE CHAT VULNERABILITY:

MODUL 6 SESSION DAN USER AUTHENTICATION

RIO ANDRIYAT KRISDIAWAN, M.KOM

PASSCODE VULNERABILITY ON POCKET EXPENSE FOR ios

MODUL 6 Redirect,Session, dan Cookies

Web Programming. Elfan Nofiari. IF-ITB/EN/Mar-05 IF3292 Web Programming. Page 1

USER MANUAL E-PROCUREMENT CKB (Vendor)

Riska Kurnianto Abdullah NRP :

BAB III IDENTIFIKASI DAN KLASIFIKASI WEB LOG

Bab 4 Hasil dan Pembahasan

BAB IV Hasil Dan Analisis

MODUL 6 REDIRECT, SESSION & COOKIE

MODUL 7 SESSION DAN USER AUTHENTICATION

Microsoft Internet Explorer 7 atau versi diatas (direkomendasikan) Mozilla FireFox 3.6 atau versi diatas (direkomendasikan)

Analisis Penggunaan Fungsi Hash pada Activation Key untuk Autentikasi Pendaftaran Akun

Andi Dwi Riyanto, M.Kom

TASK 5 JARINGAN KOMPUTER


BAB IV. Hasil dan Pembahasan. Adapun hasil dari penelitian ini adalah sebuah website yang menampilkan produk-produk

selanjutnya (menampilkan serial number yang tersedia). Back : untuk kembali ke halaman sebelumnya. Halaman yang akan muncul adalah sebagai berikut

Keamanan Web Server ARSITEKTUR KEAMANAN DAN SISTEM ADMINISTRATOR

M.K. Pemrograman Web (AK ) Konsep Pemrograman Web

BAB III ANALISA DAN PERANCANGAN SISTEM

1. Mahasiswa mampu membuat form pada dokumen HTML. 2. Mahasiswa memahami cara penggunaan dari fasilitas Form pada halaman dokumen HTML

Manual Book For Customer

LAPORAN PRAKTIKUM 5 SESSION & COOKIE

A. Tujuan B. Dasar Teori 1. Pemrosesan Form 2. Konsep Penggunaan Tag <form> pada HTML

Kapita Selekta (KBKI82127, 2 sks) Materi : Penanganan Form

Addition of beneficiary for other currency than INR

BAB IV IMPLEMENTASI DAN EVALUASI. Agar aplikasi berjalan, dalam kegiatan implementasi aplikasi. membutuhkan perangkat keras dan perangkat lunak.

rancang bangun aplikasi web vulnerability scanner terhadap kelemahan sql injection dan xss menggunakan java

BAB III PERENCANAAN KEBUTUHAN DAN PERANCANGAN

Methods of Manual Penetration Testing (Actual Exploit)

AJAX. Pemrograman Web 1. Asynchronous JavaScript and XML. Genap

Panduan Penggunaan. AndaraLink Web Portal (AWP) Version 2.2. Bank Andara 2016

Dokumentasi API Fadli Muharram

DAFTAR ISI. LEMBAR PENGESAHAN PEMBIMBING... iii. LEMBAR PENGESAHAN PENGUJI... iv. LEMBAR PERNYATAAN KEASLIAN... v. HALAMAN PERSEMBAHAN...

PHP SESSION & COOKIES

20. Halaman Detail Produk Setelah Login

HTML FORM. Praktikum III

BAB 4 IMPLEMENTASI DAN EVALUASI

Panduan Penggunaan. AndaraLink Web Portal (AWP) Version 2.0. Bank Andara 2015

Pemrograman Web. PHP State, Session dan Cookies. Adam Hendra Brata

BAB IV IMPLEMENTASI DAN EVALUASI. Dalam merancang dan membangun sistem penjualan online ini ada

Melewatkan Nilai ke Web Server melalui Field tersembunyi

BAB IV HASIL DAN UJI COBA

PORT COMMUNITY SYSTEM (PCS)

3. Setelah ada notifikasi sukses, sistem kami akan mengirimkan aktivasi ke alamat yang Anda gunakan pada saat registrasi. Buka terse

Fungsi fungsi tambahan dalam PHP Session dan Cookie

Muamalat Cash Management System - Basic User Manual

Instalasi Aplikasi Pada Perangkat Mobile. instalasi aplikasi pada perangkat mobile berbasis android :

Form Mampu membuat form dan dan mengirim data ke halaman lain Pengaturan Validasi dan keamanan form. Sesi 5

BAB IV IMPLEMENTASI DAN EVALUASI. telah dibuat pada tahap tiga. Adapun kebutuhan software (perangkat lunak) dan

Perancangan Web Application Honeypot untuk Menggali Informasi Peretas

Daftar Ulang Online. Daftar Ulang Mahasiswa PENS secara ONLINE dilakukan dengan 2 Langkah yaitu:

INSTALLATION GUIDE INSTALLATION GUIDE. PT.Technomatic Cipta Mandiri. IT division: Jl. Cikutra Baru Raya No.2 Bandung-40124

Tag dasar yang akan kita gunakan untuk membuat form di HTML adalah tag form, input, textarea, select dan option.

APLIKASI E-PROCUREMENT

BAB 4 IMPLEMENTASI DAN EVALUASI. Dalam mengimplementasikan sistem yang dijalankan, maka diperlukan beberapa

Waspadai Penipuan Bermodus Phishing. Apa itu phishing? Bagaimana phishing dilakukan?

BAB IV IMPLEMENTASI DAN PENGUJIAN

Berikut merupakan prosedur penggunaan pada non-login :

Gambar 1 Halaman Home pada Tampilan Awal

Aplikasi Document Imaging untuk PT. XYZ dapat diakses melalui web browser

APLIKASI E-PROCUREMENT MTI. Versi 1.0

DAFTAR ISI DAFTAR ISI

Petunjuk Pengisian Layanan Paspor Online Versi 2.10

BAB I PENDAHULUAN. Gambar I.1 Captcha Dengan Corak Hitam Putih

BAB IV HASIL DAN PEMBAHASAN

Tampilan Perangkat PC, Laptop, Netbook, Tablet

Perangkat Lunak Pengembangan Web

WEB To SMS Broadcast BMA

BAB IV IMPLEMENTASI DAN EVALUASI

BAB IV HASIL DAN UJI COBA

PENGERTIAN WEB web adalah

BAB IV PENGUJIAN DAN ANALISA

User Interface. Gambar 1 Form Login

SISTEM INFORMASI PENJUALAN ONLINE SEPATU PADA TOKO STARS SHOP MEDAN

BAB III METODOLOGI PENELITIAN. Untuk memudahkan penyusun dalam melakukan penelitian, dibutuhkan

Untuk menjalankan aplikasi pada Sistem Informasi Pembelian dan. Penjualan Mebel Ditoko Terang Bulan Banjarnegara Berbasis Multiuser ini

MODUL PEMROGRAMAN WEB

Waspadai Bahaya Phising!! Waspadai Malware, Virus/Worm, Trojan & Spyware. Tips Transaksi Aman di BNI Internet Banking. Tips Transaksi Aman di BNI ATM

Menggunakan FileZilla FTP Client. Pemerintah Daerah Kabupaten Sleman repo.slemankab.go.id

BAB 4 IMPLEMENTASI DAN EVALUASI. Menggunakan server dengan spesifikasi sebagai berikut : - Processor 1.2 GHz 2007 Opteron or 2007 Xeon processor

STUDI DAN IMPLEMENTASI KEAMANAN WEBSITE MENGGUNAKAN OPEN WEB APPLICATION SECURITY PROJECT (OWASP) STUDI KASUS : PLN BATAM

Aplikasi permohonan paspor online adalah aplikasi yang dibuat untuk menghindari penumpukan calon pemohon paspor di unit layanan paspor / kantor

III. ANALISIS DAN PERANCANGAN SISTEM

BAB IV IMPLEMENTASI DAN EVALUASI SISTEM. Dalam merancang dan membangun aplikasi virtual store menggunakan

MEMBUAT KONTEN. 3.1 Apakah konten itu?

Analisis Penanganan SQL Injection pada Basis Data MySQL dengan Framework Code Igniter dan PHP

JURUSAN SISTEM KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS SRIWIJAYA

Membuat Database mysql dengan PhpMyAdmin

TIPS PENGAMANAN TRANSAKSI

Pemrograman Web. PHP State, Session dan Cookies. Adam Hendra Brata

JENIS-JENIS APLIKASI UNTUK SERVER MENGADMINISTRASI SERVER DALAM JARINGAN. Pembahasan: Habib Ahmad Purba. 0 P a g e

Transkripsi:

Missing CSRF Token that could Illegally Send a Message August 29 th, 2016 @YoKoAcc (yk@firstsight.me) [Indonesian Version]

Revision Detail Version Date Detail 0.1 August 29 th, 2016 - Missing CSRF Token that could Illegally Sending a Message page 2

Table of Contents Revision Detail... 2 Table of Contents... 3 Table of Figures... 3 I. ABSTRACT... 4 II. INTRODUCTION... 5 III. SUMMARY OF ISSUE... 5 IV. INFORMATION AND SITUATION OF THIS POC... 5 V. STEP TO REPRODUCE... 7 VI. ADDITIONAL INFORMATION... 8 VII. RECOMMENDATION... 8 VIII. REFERENCES... 9 Table of Figures Figure 1 Fitur Berkirim Pesan pada Tokopedia... 4 Figure 2 Message was Sent Successfully... 6 Figure 3 Success Sending a Message via CSRF... 7 Missing CSRF Token that could Illegally Sending a Message page 3

I. ABSTRACT Berkirim pesan di dalam transaksi jual beli merupakan suatu hal yang lumrah dilakukan baik oleh pembeli maupun penjual. Di dalam realita, pengiriman pesan ini ditujukan dengan banyak kebutuhan baik dengan tujuan bertanya, konfirmasi pembelian / penjualan, ataupun pemberian informasi sensitif seperti nomor rekening untuk proses pembayaran. Figure 1 Fitur Berkirim Pesan pada Tokopedia Akan tetapi permasalahan muncul ketika Tokopedia belum memberikan perlindungan berupa unique token pada fitur mengirim pesan ini. Dengan memanfaatkan kerentanan ini, maka seorang Attacker yang berhasil membawa pengguna ke halaman palsu yang dituju akan dapat membuat pengguna dimaksud untuk mengirim pesan secara tidak langsung kepada pengguna yang diharapkan oleh Attacker. Sebagai contohnya yaitu seorang penjual terpecaya diperdaya untuk mengunjungi halaman tertentu dari Attacker sehingga secara tidak langsung dan otomatis mengirimkan pesan palsu (dari Attacker) kepada pembelinya mengenai nilai jual berikut rekening palsu. Missing CSRF Token that could Illegally Sending a Message page 4

II. INTRODUCTION Seperti yang pernah dibahas pada paper sebelumnya, secara umum CSRF merupakan suatu serangan yang memaksa seorang pengguna untuk melakukan sesuatu yang pada dasarnya tidak diinginkan di dalam suatu aplikasi berbasis web dengan memanfaatkan keadaan diri korbannya yang sedang dalam keadaan memiliki otorisasi (login). Umumnya serangan jenis ini dapat dimanfaatkan karena tidak terdapatnya suatu proses autentikasi dalam melakukan suatu perubahan atau tidak terdapatnya token yang unik yang diberikan izin untuk memproses hal dimaksud (token bersifat unik ini biasanya diberikan supaya pengguna tidak lagi dipersulit dengan mengetikan kata sandi untuk perubahan yang tidak terlalu significant). Di dalam situs Tokopedia, setiap perubahan yang dilakukan oleh pengguna baik itu mengubah profile, menambah daftar rekening, menambah daftar alamat, ataupun menghapus daftar yang ditambahkan selalu disertai dengan token yang di-generate secara otomatis oleh sistem. Perbedaannya, ketika penambahan suatu rekening dan mengubah profile, pengguna diharuskan memasukan kata sandi ataupun mengirimkan OTP terlebih dahulu. III. SUMMARY OF ISSUE Seperti yang telah disampaikan pada point sebelumnya, permasalahan keamanan pada laporan ini berkaitan dengan kerentanan yang mengizinkan seorang Attacker untuk dapat memaksa korbannya mengirim pesan kepada pengguna lain dikarenakan belum terdapatnya perlindungan berupa unique token. IV. INFORMATION AND SITUATION OF THIS POC Untuk dapat memahami dengan baik akan permasalahan yang ada, pada bagian ini akan disampaikan kembali secara spesifik mengenai beberapa informasi yang berkaitan dengan proses yang berjalan secara umum dari aplikasi maupun akar dari permasalahan yang ada. Tokopedia memiliki beberapa hal yang di-request menuju server untuk dapat melakukan beberapa hal, yaitu: 4.1. message_subject : Merupakan parameter yang berisikan informasi mengenai judul pesan yang ingin dikirimkan seorang pengguna kepada pengguna lain; 4.2. message : Merupakan parameter yang berisikan informasi mengenai isi pesan yang ingin dikirimkan; Missing CSRF Token that could Illegally Sending a Message page 5

4.3. action : merupakan parameter yang digunakan untuk memerintah aplikasi untuk mengirim pesan baru; 4.4. friend_id: merupakan parameter yang berisikan informasi mengenai nomor ID terdaftar dari pengguna yang dituju. Adapun contoh request yang dikirimkan terkait proses pengiriman pesan ini yaitu sebagai berikut: POST /ajax/people-4.pl?aws=1 HTTP/1.1 Host: www.tokopedia.com User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:48.0) Gecko/20100101 Firefox/48.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate, br Cookie: some of cookies value here Connection: close Content-Type: application/x-www-form-urlencoded Content-Length: 124 message_subject=halooo&message=you+sent+an+illegal+message+to+dicky&action=event_dia log_new_message&friend_id=11340826&shop= Table 1 Request for Sending a Message Dalam konteks ini, Attacker dapat mengganti setiap value yang diberi warna merah untuk keperluan fraud yang ingin dilakukan kepada korbannya. Ketika pengiriman pesan berhasil dilakukan, maka aplikasi akan mengeluarkan respons seperti berikut ini: Figure 2 Message was Sent Successfully Missing CSRF Token that could Illegally Sending a Message page 6

V. STEP TO REPRODUCE 5.1. Persiapkan terlebih dahulu korban yang ingin dituju. Dalam situasi ini, ketika seorang Attacker telah menentukan targetnya, maka Attacker hanya perlu mencari ID dari pengguna dimaksud. Seperti yang telah dijelaskan pada report terkait enumerasi nama pemiliki rekening bank, informasi mengenai nomor ID ini dapat diperoleh Attacker dengan mengunjungi halaman https://www.tokopedia.com/people/x dengan X merupakan parameter yang dapat digantikan dengan angka. Setelah berhasil memperoleh nomor ID ini, maka Attacker hanya perlu memasukannya ke dalam parameter friend_id pada script yang telah dipersiapkan. 5.2. Langkah berikutnya yaitu Attacker diharuskan untuk menentukan subjek pesan dan isi pesan. Sebagai contoh, seorang Attacker ingin membuat Yongki mengirim pesan kepada Dicky, maka.html script sederhana yang perlu dibuat adalah sebagai berikut: <html> <body> <form action="https://www.tokopedia.com/ajax/people-4.pl?aws=1" method="post"> <input type="hidden" name="message_subject" value="halooo" /> <input type="hidden" name="message" value="you sent an illegal message to Dicky" /> <input type="hidden" name="action" value="event_dialog_new_message" /> <input type="hidden" name="friend_id" value="11340826" /> <input type="hidden" name="shop" value="" /> <input type="submit" value="submit request" /> </form> </body> </html> Table 2 Simple.html Script Sending a Message from Yongki to Dicky 5.3. Setelah itu, Attacker hanya perlu menunggu korban mengunjungi URL yang telah disiapkan. Ketika korban mengunjungi halaman dimaksud, maka korban pun akan mendapati tampilan berikut ini: Figure 3 Success Sending a Message via CSRF Missing CSRF Token that could Illegally Sending a Message page 7

VI. ADDITIONAL INFORMATION Untuk dapat memaksimalkan informasi yang disampaikan pada laporan ini, berikut ini terlampir beberapa kondisi tambahan yang perlu diperhatikan: 6.1..html file yang dipersiapkan seperti pada table 2 dapat dieksekusi oleh pengguna mana pun yang sedang dalam keadaan login. Dalam konteks ini, isi pesan akan tetap sama seperti yang telah ditentukan oleh Attacker. Bentuk lain pemanfaatan hal ini yaitu dengan mengirimkan pesan yang berisikan malicious program dari seorang penjual atau pengguna terpercaya; 6.2. Sebagaimana yang juga terjadi dengan kerentanan Reflected XSS yang pernah disampaikan pada laporan sebelumnya, keberhasilan dari serangan ini bergantung dari korban yang terpedaya untuk mengunjungi suatu URL yang di dalamnya telah disisipkan.html file seperti yang telah dijelaskan sebelumnya; 6.3. PoC Video (Unlisted at Youtube): https://youtu.be/-srfmsrb8ny VII. RECOMMENDATION Dalam hal ini, penambahan parameter token yang bersifat unik di setiap pengiriman action tertentu akan menjadi rekomendasi yang dapat diterapkan untuk menutupi kerentanan yang ada. Penggunaan CAPTCHA pada dasarnya memang sudah cukup dalam menangani hal ini, namun perlu menjadi catatan bahwa penggunaan CAPTCHA ini sendiri dapat memberikan sedikit dampak tidak menyenangkan kepada para pengguna karena mereka diharuskan bertemu dengan suatu hal yang menyulitkan mereka dalam mengirim pesan. Jadi, penggunaan unique token yang disisipkan dengan action tertentu tentu sudah cukup menutupi kerentanan yang ada. Penggunaan CAPTCHA baru akan efektif apabila pihak Tokopedia hendak membatasi seorang pengguna dalam mengirim pesan yang banyak dalam satu waktu yang berdekatan. Perlu diingat bahwa fitur CAPTCHA ini merupakan fitur yang pada dasarnya digunakan untuk membedakan antara kegiatan mesin atau kegiatan manusia. Kesimpulan sederhana: 7.1. Ketika ingin membatasi aktivitas mesin (seperti aktivitas automation scanner ataupun automation request), maka fitur CAPTCHA dapat bermanfaat dengan baik. Akana tetapi, dalam konteks ini, user friendly akan menjadi pertimbangan utama; 7.2. Ketika ingin melindungi pengguna dari adanya pengiriman pesan illegal secara otomatis, maka pemberian unique token di setiap action tentu akan bermanfaat dengan baik. Missing CSRF Token that could Illegally Sending a Message page 8

VIII. REFERENCES 8.1. PCI DSS v3.2 point 6.5.9 (for CSRF); 8.2. https://www.owasp.org/index.php/cross-site_request_forgery_(csrf); 8.3. https://www.owasp.org/index.php/top_10_2013-a8-cross-site_request_forgery_(csrf) Missing CSRF Token that could Illegally Sending a Message page 9