#5 tokopedia - missing csrf token that could result illegally...

9
Missing CSRF Token that could Illegally Send a Message August 29 th , 2016 @YoKoAcc ([email protected]) [Indonesian Version]

Upload: others

Post on 01-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: #5 Tokopedia - Missing CSRF Token that could Result Illegally …firstsight.me/fia07a53c4ec63d2b0d47fe27ea2645d82f8c98648... · 2017-03-30 · Seperti yang telah disampaikan pada

MissingCSRFTokenthatcouldIllegallySendaMessage

August29th,2016

@YoKoAcc([email protected])

[IndonesianVersion]

Page 2: #5 Tokopedia - Missing CSRF Token that could Result Illegally …firstsight.me/fia07a53c4ec63d2b0d47fe27ea2645d82f8c98648... · 2017-03-30 · Seperti yang telah disampaikan pada

MissingCSRFTokenthatcouldIllegallySendingaMessage|page|2

RevisionDetail

Version Date Detail

0.1 August29th,2016 -

Page 3: #5 Tokopedia - Missing CSRF Token that could Result Illegally …firstsight.me/fia07a53c4ec63d2b0d47fe27ea2645d82f8c98648... · 2017-03-30 · Seperti yang telah disampaikan pada

MissingCSRFTokenthatcouldIllegallySendingaMessage|page|3

TableofContents

RevisionDetail........................................................................................................................................2

TableofContents...................................................................................................................................3

TableofFigures......................................................................................................................................3

I. ABSTRACT..........................................................................................................................................4

II. INTRODUCTION.................................................................................................................................5

III.SUMMARYOFISSUE..........................................................................................................................5

IV.INFORMATIONANDSITUATIONOFTHISPOC...................................................................................5

V. STEPTOREPRODUCE.........................................................................................................................7

VI.ADDITIONALINFORMATION..............................................................................................................8

VII.RECOMMENDATION........................................................................................................................8

VIII.REFERENCES....................................................................................................................................9

TableofFigures

Figure1FiturBerkirimPesanpadaTokopedia.......................................................................................4

Figure2MessagewasSentSuccessfully................................................................................................6

Figure3SuccessSendingaMessageviaCSRF.......................................................................................7

Page 4: #5 Tokopedia - Missing CSRF Token that could Result Illegally …firstsight.me/fia07a53c4ec63d2b0d47fe27ea2645d82f8c98648... · 2017-03-30 · Seperti yang telah disampaikan pada

MissingCSRFTokenthatcouldIllegallySendingaMessage|page|4

I. ABSTRACT

Berkirimpesan di dalam transaksi jual belimerupakan suatu hal yang lumrah dilakukan baik oleh

pembelimaupunpenjual.Didalamrealita,pengirimanpesaniniditujukandenganbanyakkebutuhan

baikdengantujuanbertanya,konfirmasipembelian/penjualan,ataupunpemberianinformasisensitif

sepertinomorrekeninguntukprosespembayaran.

Figure1FiturBerkirimPesanpadaTokopedia

AkantetapipermasalahanmunculketikaTokopediabelummemberikanperlindunganberupaunique

tokenpadafiturmengirimpesanini.Denganmemanfaatkankerentananini,makaseorangAttacker

yang berhasilmembawa pengguna ke halaman palsu yang dituju akan dapatmembuat pengguna

dimaksud untuk mengirim pesan secara tidak langsung kepada pengguna yang diharapkan oleh

Attacker.Sebagaicontohnyayaituseorangpenjualterpecayadiperdayauntukmengunjungihalaman

tertentudariAttackersehinggasecaratidak langsungdanotomatismengirimkanpesanpalsu(dari

Attacker)kepadapembelinyamengenainilaijualberikutrekeningpalsu.

Page 5: #5 Tokopedia - Missing CSRF Token that could Result Illegally …firstsight.me/fia07a53c4ec63d2b0d47fe27ea2645d82f8c98648... · 2017-03-30 · Seperti yang telah disampaikan pada

MissingCSRFTokenthatcouldIllegallySendingaMessage|page|5

II. INTRODUCTION

Sepertiyangpernahdibahaspadapapersebelumnya,secaraumumCSRFmerupakansuatuserangan

yang“memaksa”seorangpenggunauntukmelakukansesuatuyangpadadasarnya“tidakdiinginkan”

di dalam suatu aplikasi berbasiswebdenganmemanfaatkan keadaan diri korbannya yang sedang

dalamkeadaanmemiliki otorisasi (login).Umumnya serangan jenis ini dapatdimanfaatkankarena

tidakterdapatnyasuatuprosesautentikasidalammelakukansuatuperubahanatautidakterdapatnya

tokenyangunikyangdiberikanizinuntukmemproseshaldimaksud(tokenbersifatunikinibiasanya

diberikansupayapenggunatidaklagidipersulitdenganmengetikankatasandiuntukperubahanyang

tidakterlalusignificant).

DidalamsitusTokopedia,setiapperubahanyangdilakukanolehpenggunabaikitumengubahprofile,

menambahdaftarrekening,menambahdaftaralamat,ataupunmenghapusdaftaryangditambahkan

selalu disertai dengan token yang di-generate secara otomatis oleh sistem. Perbedaannya, ketika

penambahan suatu rekening danmengubah profile, pengguna diharuskanmemasukan kata sandi

ataupunmengirimkanOTPterlebihdahulu.

III. SUMMARYOFISSUE

Sepertiyang telahdisampaikanpadapointsebelumnya,permasalahankeamananpada laporan ini

berkaitan dengan kerentanan yang “mengizinkan” seorang Attacker untuk dapat “memaksa”

korbannya mengirim pesan kepada pengguna lain dikarenakan belum terdapatnya perlindungan

berupauniquetoken.

IV. INFORMATIONANDSITUATIONOFTHISPOC

Untukdapatmemahamidenganbaikakanpermasalahanyangada,padabagianiniakandisampaikan

kembali secara spesifikmengenaibeberapa informasi yangberkaitandenganprosesyangberjalan

secaraumumdariaplikasimaupunakardaripermasalahanyangada.

Tokopediamemilikibeberapahalyangdi-requestmenujuserveruntukdapatmelakukanbeberapa

hal,yaitu:

4.1. message_subject:Merupakanparameteryangberisikaninformasimengenaijudulpesanyang

ingindikirimkanseorangpenggunakepadapenggunalain;

4.2. message : Merupakan parameter yang berisikan informasi mengenai isi pesan yang ingin

dikirimkan;

Page 6: #5 Tokopedia - Missing CSRF Token that could Result Illegally …firstsight.me/fia07a53c4ec63d2b0d47fe27ea2645d82f8c98648... · 2017-03-30 · Seperti yang telah disampaikan pada

MissingCSRFTokenthatcouldIllegallySendingaMessage|page|6

4.3. action:merupakanparameteryangdigunakanuntukmemerintahaplikasiuntukmengirimpesan

baru;

4.4. friend_id: merupakan parameter yang berisikan informasi mengenai nomor ID terdaftar dari

penggunayangdituju.

Adapuncontohrequestyangdikirimkanterkaitprosespengirimanpesaniniyaitusebagaiberikut:

POST/ajax/people-4.pl?aws=1HTTP/1.1

Host:www.tokopedia.com

User-Agent:Mozilla/5.0(Macintosh;IntelMacOSX10.11;rv:48.0)Gecko/20100101Firefox/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:someofcookiesvaluehere

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_dialog_new_message&friend_id=11340826&shop=

Table1RequestforSendingaMessage

Dalamkonteksini,Attackerdapatmenggantisetiapvalueyangdiberiwarnamerahuntukkeperluan

fraud yang ingin dilakukan kepada korbannya. Ketika pengiriman pesan berhasil dilakukan, maka

aplikasiakanmengeluarkanresponssepertiberikutini:

Figure2MessagewasSentSuccessfully

Page 7: #5 Tokopedia - Missing CSRF Token that could Result Illegally …firstsight.me/fia07a53c4ec63d2b0d47fe27ea2645d82f8c98648... · 2017-03-30 · Seperti yang telah disampaikan pada

MissingCSRFTokenthatcouldIllegallySendingaMessage|page|7

V. STEPTOREPRODUCE

5.1. Persiapkanterlebihdahulukorbanyangingindituju.Dalamsituasiini,ketikaseorangAttacker

telahmenentukantargetnya,makaAttackerhanyaperlumencariIDdaripenggunadimaksud.

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

dengan angka. Setelah berhasil memperoleh nomor ID ini, maka Attacker hanya perlu

memasukannyakedalamparameter“friend_id”padascriptyangtelahdipersiapkan.

5.2. LangkahberikutnyayaituAttacker“diharuskan”untukmenentukansubjekpesandanisipesan.

Sebagaicontoh,seorangAttackeringinmembuatYongkimengirimpesankepadaDicky,maka

.htmlscriptsederhanayangperludibuatadalahsebagaiberikut:

<html>

<body>

<formaction="https://www.tokopedia.com/ajax/people-4.pl?aws=1"method="POST">

<inputtype="hidden"name="message_subject"value="Halooo"/>

<inputtype="hidden"name="message"value="YousentanillegalmessagetoDicky"/>

<inputtype="hidden"name="action"value="event_dialog_new_message"/>

<inputtype="hidden"name="friend_id"value="11340826"/>

<inputtype="hidden"name="shop"value=""/>

<inputtype="submit"value="Submitrequest"/>

</form>

</body>

</html>

Table2Simple.htmlScript–SendingaMessagefromYongkitoDicky

5.3. Setelah itu,Attackerhanyaperlumenunggu korbanmengunjungiURL yang telahdisiapkan.

Ketika korbanmengunjungihalamandimaksud,maka korbanpunakanmendapati tampilan

berikutini:

Figure3SuccessSendingaMessageviaCSRF

Page 8: #5 Tokopedia - Missing CSRF Token that could Result Illegally …firstsight.me/fia07a53c4ec63d2b0d47fe27ea2645d82f8c98648... · 2017-03-30 · Seperti yang telah disampaikan pada

MissingCSRFTokenthatcouldIllegallySendingaMessage|page|8

VI. ADDITIONALINFORMATION

Untuk dapat memaksimalkan informasi yang disampaikan pada laporan ini, berikut ini terlampir

beberapakondisitambahanyangperludiperhatikan:

6.1. .htmlfileyangdipersiapkansepertipadatable2dapat“dieksekusi”olehpenggunamanapun

yangsedangdalamkeadaanlogin.Dalamkonteksini, isipesanakantetapsamasepertiyang

telah ditentukan oleh Attacker. Bentuk lain pemanfaatan hal ini yaitu denganmengirimkan

pesanyangberisikanmaliciousprogramdariseorangpenjualataupenggunaterpercaya;

6.2. Sebagaimana yang juga terjadi dengan kerentanan Reflected XSS yang pernah disampaikan

pada laporan sebelumnya, keberhasilan dari serangan ini bergantung dari korban yang

terpedayauntukmengunjungisuatuURLyangdidalamnyatelahdisisipkan .html fileseperti

yangtelahdijelaskansebelumnya;

6.3. PoCVideo(UnlistedatYoutube):https://youtu.be/-sRfMsRB8nY

VII. RECOMMENDATION

Dalamhalini,penambahanparametertokenyangbersifatunikdisetiappengirimanactiontertentu

akanmenjadirekomendasiyangdapatditerapkanuntukmenutupikerentananyangada.

PenggunaanCAPTCHApadadasarnyamemangsudahcukupdalammenanganihalini,namunperlu

menjadi catatan bahwapenggunaanCAPTCHA ini sendiri dapatmemberikan sedikit dampak tidak

menyenangkankepadaparapenggunakarenamerekadiharuskanbertemudengansuatuhal yang

menyulitkanmerekadalammengirimpesan.Jadi,penggunaanuniquetokenyangdisisipkandengan

actiontertentutentusudahcukupmenutupikerentananyangada.

Penggunaan CAPTCHA baru akan efektif apabila pihak Tokopedia hendak membatasi seorang

pengguna dalammengirim pesan yang banyak dalam satu waktu yang berdekatan. Perlu diingat

bahwafiturCAPTCHAinimerupakanfituryangpadadasarnyadigunakanuntukmembedakanantara

kegiatanmesinataukegiatanmanusia.

Kesimpulansederhana:

7.1. Ketikainginmembatasiaktivitasmesin(sepertiaktivitasautomationscannerataupunautomation

request),makafiturCAPTCHAdapatbermanfaatdenganbaik.Akanatetapi,dalamkonteks ini,

“userfriendly”akanmenjadipertimbanganutama;

7.2. Ketika inginmelindungipenggunadariadanyapengirimanpesan illegal secaraotomatis,maka

pemberianuniquetokendisetiapactiontentuakanbermanfaatdenganbaik.

Page 9: #5 Tokopedia - Missing CSRF Token that could Result Illegally …firstsight.me/fia07a53c4ec63d2b0d47fe27ea2645d82f8c98648... · 2017-03-30 · Seperti yang telah disampaikan pada

MissingCSRFTokenthatcouldIllegallySendingaMessage|page|9

VIII. REFERENCES

8.1. PCIDSSv3.2point6.5.9(forCSRF);

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)