Beranda > Network Security, Web Developer > Mencegah serangan XSS

Mencegah serangan XSS

Pada bahasan-bahasan sebelumnya, kita telah membahas tentang dasar/konsep pembuatan form dengan HTML dan PHP. Nah, sekarang mari kita tes, seberapa amankah script tersebut dari serangan peretas.

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.

Sekarang mari kita coba pada form html yang menggunakan metode POST berikut,

<html>
	<head>
		<title>Form in One file</title>
	</head>
	<body><center><h5>
<?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>

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.

<body bgcolor="black"><center><font color="green" size="30">
	This Site Was Hacked
</font></center></body>

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,

<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 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

  1. 15 Juni 2011 pukul 5:35 PM

    XSS is just the simple things, but it can be dangerous too.

  2. moedzta
    16 Juli 2011 pukul 5:18 PM

    gan ini download ga?? trus klo g download pake sistem apa ??
    (maaf masih newbie)

    • 4 Agustus 2011 pukul 8:35 PM

      Ini bukan tool gan….
      Melainkan hanya teknik-nya saja….
      Tinggal di pelajari,,, cuma butuh sedikit ilmu web programming saja koq…

  3. 11 Februari 2012 pukul 1:38 PM

    gan,,cara nginjectnya ke server korban gmn,,dtnggu postingx,,. . . .

  4. adib
    11 April 2013 pukul 6:43 AM

    trims gan, artikelnya ok..

  1. No trackbacks yet.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s