XSS (Cross Site Scripting) adalah salah satu teknik hacking yang
menggunakan metode script injection melalui celah tertentu pada suatu
halaman website. Celah tersebut terkadang bisa melalui input form, atau
dengan cara memodifikasi parameter URL. Adapun script yang di-injeksikan
terdapat beberapa macam, bisa HTML Tag, JavaScript, PHP, ASP (sesuai
web server), dll.
berhati-hatilah dalam bermain internet
Sekarang mari kita coba pada form html yang menggunakan metode POST berikut,
Form in One file
if ($_POST) {
echo “Anda tinggal di ” . $_POST['alamat'];
} else {
?>
}
?>
Copyright @ www.almansyurin.web.id
Script tersebut diatas, akan menghasilkan sebuah form yang bernama
Alamat. Sekilas form tersebut terlihat biasa-biasa saja, namun coba kita
injeksikan HTML Tag berikut pada form tersebut.
This Site Was Hacked
Dan lihat apa yang terjadi, web server akan tetap memproses input
HTML Tag tersebut, dan menampilkanya pada web browser. Terus
pertanyaanya adalah, apa dampak yang ditimbulkan dari serangan XSS
tersebut?? toh itu juga tidak merusak server, hanya merubah tampilanya
saja?? Hal tersebut akan kita kupas di akhir bahasan nanti.
Berikut contoh lain serangan XSS yang dilakukan melalui modifikasi
parameter URL (Uniform Resource Locator). Hal ini biasa terjadi pada
form HTML yang menggunakan metode GET. Lihatlah parameter URL berikut,
http://www.almansyurin.web.id/onefile.php?alamat=Mojokerto
Sekarang bagaimana kalau kita sisipkan kode JavaScript berikut di
belakang parameter tersebut. Lebih tepatnya, ganti kata “Mojokerto”
dengan script di bawah ini,
Dan kode Javascript pun akan tetap diproses, dan ditampilkan kembali
pada web browser client. Serangan XSS semacam ini disebut “Reflected
XSS”, karna hanya akan dipantulkan kembali ke client tersebut.
Walaupun HTML Tag dan Javascript injection ini tidak berpengaruh
besar pada sisi server, namun hal ini juga termasuk vulnerable. Karena
dapat merusak tampilan website tersebut, dengan sedikit kreatifitas dari
si peretas.
Nah, bagaimana sekarang kalau kita injeksikan kode Javascript berikut,
Pengunjung/Client yang masih awam, pastinya akan dengan mudah percaya
dan kemudian memasukan PIN mereka tersebut. Tapi bagaimana cara
kerjanya, kalau hal tersebut hanya dipantulkan pada web browser si
peretas??
Jawabanya mudah sekali, yaitu dengan LINK HTML. Dengan membuat link
yang menuju pada halaman yang sudah kita injeksikan tersebut, para
korban akan lebih mudah tertipu. LINK tersebut juga dapat kita masukan
ke website korban melalui fasilitas GuestBook, atau Komentar.
Saya disini tidak mengajarkan untuk berbuat jahat, namun memang
itulah apa adanya yang harus kita ketahui. Dan untuk pencegahanya, kita
dapat menggunakan fungsi khusus “htmlspecialchars” dari PHP. Tambahkan
fungsi tersebut seperti contoh-contoh berikut,
//contoh method POST
$umur = htmlspecialchars($_POST['age']);
//contoh method GET
$nama = htmlspecialchars($_GET['name']);
//contoh langsung
echo “Alamat : ” . htmlspecialchars($_POST['alamat']);
Fungsi khusus tersebut adalah untuk memfilter semua input dari
client, untuk dirubah menjadi STRING. Sehingga akan tampil apa adanya.
Sedangkan untuk serangan XSS mengguanakn PHP sebagai bahan
injeksinya, sebagian besar tidak akan berfungsi. Karna script tersebut
akan langsung dirubah menjadi STRING. Lebih mudahnya adalah, tidak bisa
menjalankan PHP di dalam PHP.
Untuk mengakali hal tersebut pun, kita masih bisa menggunakan fungsi
eval(), yang tentunya Insya Allah akan kita ulas di bahasan berikutnya.
AJKH
Artikel by: almansyurin