Sekarang mari kita coba pada form html yang menggunakan metode POST berikut,
<html>
<head>
<title>Form in One file</title>
</head>
<body><center><h5>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.
<?php
if ($_POST) {
echo “Anda tinggal di ” . $_POST['alamat'];
} else {
?>
<form action=”" method=”POST”>
Alamat : <input type=”text” name=”alamat”>
<input type=”submit” value=”Proses”>
</form>
<?php
}
?>
<br><br><p>
Copyright @ www.almansyurin.web.id
</body>
</html>
<body bgcolor=”black”><center><font color=”green” size=”30″>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.
This Site Was Hacked
</font></center></body>
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=MojokertoSekarang bagaimana kalau kita sisipkan kode JavaScript berikut di belakang parameter tersebut. Lebih tepatnya, ganti kata “Mojokerto” dengan script di bawah ini,
<script>alert(“Is This Vulnerable!”);</script>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,
<script>prompt(“Masukan Nomor PIN Anda?”,” “);</script>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 POSTFungsi khusus tersebut adalah untuk memfilter semua input dari client, untuk dirubah menjadi STRING. Sehingga akan tampil apa adanya.
$umur = htmlspecialchars($_POST['age']);
//contoh method GET
$nama = htmlspecialchars($_GET['name']);
//contoh langsung
echo “Alamat : ” . htmlspecialchars($_POST['alamat']);
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()
0 comments:
Post a Comment