Pencurian COOKIE Dengan XSS Yang Berimbas Pada User Account - Part 1

Pencurian COOKIE Dengan XSS Yang Berimbas Pada User Account - Part 1

Bagaimana COOKIE BISA DI CURI ?



Padat kesempatan kali ini saya akan berbagi sedikit mengenai Cross Site Scripting atau sering dikenal sebagai XSS , XSS sendiri adalah bentuk serangan yang memanfaatkan celah ke amanan suatu sistem atau webApp dengan menyuntikan kode javascript pada sisi client.

XSS attack bisa mengakibatkan suatu yang suatu fatal walapun pada dasar nya serangan ini tidak termasuk critical akan tetapi ketika si attacker itu mengkombinasikan dengan serangan lain dan mencuri COOKIE makan itu akan berakibat fatal. untuk lebih lanjut mengetahui apa itu XSS?
silahkan teman-teman berkunjung ke alamat di bawah ini :


Untuk kali ini saya akan membahas mengenai pencurian COOKIE yang memanfaatkan dari celah / bug XSS pada suatu website. bagaimana itu bisa terjadi ?

Apa itu COOKIE ?

COOKIE digunakan sebagai identifikasi user dengan berukuran kecil hanya sebesar 4kb yang akan tertambat di setiap computer ( tepatnya browser ), COOKIE akan berganti setiap waktu tertentu dan ketika browser di keluarkan, di PHP kita dapat membuat dan menerima COOKIE.

You may like these posts

Apa bedanya dengan PHPSESSIONID ?

Beda nya, cookie hanya tertambat atau tersimpan sebagai identifikasi sebatas browser/client side saja, dan akan berakhir ketika computer / browser kita keluarkan, Sebaliknya PHPSESSIONID itu tersimpan dalam database / server side, tak akan berubah meskipun kita mengeluarkan browser.

Apa bahaya yang akan terjadi ketika COOKIE di curi ?

Seperti yang kita ketahui, cookie bisa menjadi alat untuk mengidentifikasi sebuah user dari sisi client, ketika kita melakukan access login terhadap website, maka browser akan menerima session COOKIE tersebut, lalu browser akan menyimpanya, dan akan di tampilkan kembali ketika kita akan melakukan akses ke suatu page yang membutuhkan COOKIE tersebut, rumit bukan?, tentu tidak, kali ini saya akan coba menjelaskanya secara visual, mungkin akan lebih membantu untuk memahami materi kali ini.


Dapat kita lihat gambar di atas ketika client merequest sesuatu ( dalam hal ini kita ambil contoh request login ), setelah kita login, server akan memberikan cookie ke pada web browser / client untuk mengidentifikasi sesi login tersebut, jadi setiap web browser me refresh itu tidak perlu lagi melakukan login ulang karena sudah ada cookie yang tertambat dalam browser sebagai identifikasi bahwa browser tersebut sudah melakukan sesi login.

kemudian...

BAGAIMANA COOKIE BISA DISUNTIK DI BROWSER ? BAHKAN PADA KOMPUTER YANG BERBEDA ?


TIDAK TERSETTINGNYA HTTPONLY FLAG SAAT COOKIE DI GENERATE. 

Httponly adalah flag tambahan di dalam sebuah HTTP respone header, dengan menggunakan flag HttpOnly ini ketika program membuat sebuah cookie, akan dapat membantu menjaga dari resiko terhadap exploit bersifat client side yang dapat mengakses cookie tersebut, itupun jika browsernya support (httpOnly) ya.

memangnya gmana sih perbedaan yang terpasang HttpOnly dengan yang tidak?
oke kali ini akan saya simulasi kan di lab saya, coba perhatikan gambar dibawah, ini adalah contoh ketika exploit bersifat client side ( XSS ) menjalanan code jahatnya yaitu memuncul kan cookie:


Berikut ini codenya :


Nah disini saya tidak mengaktifkan httpOnly nya, dan cookie pun tidak terjaga alias muncul, ini sangat riskan sekali, exploit bersifat client side (XSS) akan dengan mudah mencuri cookie dari seseorang.
Bandingkan ketika webnya sudah saya pasang httponly untuk memproteksi cookie nya, agar hanya dengan exploit client side, sang cookie tidakk muncul:


Berikut codenya :


itu adalah salah satu mengapa cookie bisa di curi, httponly ini sendiri sudah di implementasikan oleh Microsoft Internet Explorer developers untuk internet explorer 6.

dalam kasus ini saya akan matikan fungsi HTTPONLY, jadi browser diizinkan untuk membaca cookie, kembali ke kasus seperti yang saya jelaskan sebelumnya, server akan meminta suatu tanda untuk mengidentifikasi akses ke suatu page ( dalam kasus ini saya ambil contoh akses login ), nah ketika kita belum menyuntikan cookie yang pemiliknya sudah melakukan login, kita akan terus diminta akses untuk login kembali oleh server, sebaliknya, jika kita sudah menyimpan / menyuntikan cookie yang sudah punya akses login ke browser kita, browser akan otomatis memberi tahu, dengan cara menunjukan cookie tersebut pada server, lalu server akan memberi respon OK, dan kitapun diizinkan mengakses page tersebut.

Hmm.. jadi..

BAGAIMANA CARA MENDAPATKAN COOKIE ORANG LAIN ?

Untuk pembahasan soal teknis nya, saya akan membahasnya di post selanjutnya, karena mungkin akan sedikit panjang jika saya jelaskanya di sini juga.

Terima kasih


REFF