HTML tag Injection

Jumat, Desember 2nd, 2011

“HTML Tag Injection” yakni salah satu teknik hacking yang menggunakan kode-kode HTML untuk di injeksi-kan ke dalam suatu web server. Atau dalam kata lain, teknik ini sama seperti XSS (Cross Site Scripting), namun saja menggunakan tag-tag HTML sebagai injeksinya.

Celah ini biasanya terletak pada “FORM” atau “FIELD” yang tedapat pada halaman website. Namun terkadang juga bisa melakukan injeksit Tag HTML melalui “URL”, seperti teknik SQL Injection.

Hal ini dapat terjadi karena tidak adanya “filter” untuk menyaring semua input yang dimasukan oleh user pada form tersebut. Sehingga walaupun yang di masukan tersebut kode HTML, maka web server akan tetap memprosesnya dan menampilkanya dalam web browser.

Berikut contoh script sederhana sebagai bahan pembuktian. Simpan dengan namafile “form.html”

 

01 <html>
02     <head>
03         <title>Simple Form</title>
04     </head>
05     <body bgcolor=black>
06     <font color=green face=calibri size=5>
07     <blink>Enter Your Information Here </blink><br></font>
08         <font color=red>
09         <marquee direction=left width=10%>=====================</marquee>
10         </font>
11         <font color=white>
12         <marquee direction=right width=10%>====================</marquee>
13         </font><br>
14         <font face=calibri color=green size=3>
15     <form action=action1.php method=post>
16         <p>Your Name: <input type=text name=name></p>
17         <p>Your Age__: <input type=text name=age></p>
18         <p>Your Addr_: <input type=text name=addr></p>
19         <p><input type=submit value="Submit me!"></p>
20     </form>
21     </body>
22 </html>

File HTML Tersebut akan tampil seperti berikut;

Dan berikut file PHP yang berfungsi untuk memproses input dari form tersebut, dan simpan dengan namafile “action.php”.

01 <?php
02     //html code here
03     echo '<font face=calibri color=blue size=5>';
04
05     //the script
06     echo "Information about you<br>";
07     echo '<font face=calibri color=green size=3>';
08     echo "Hi " . $_POST['name'] . '<br>';
09     echo "You are " . (int)$_POST['age'] ." years old<br>";
10     echo "You live in " . $_POST['addr'] . " city<br>";
11 ?>

Dan file diatas akan menampilkan output seperti gambar berikut;

Nah, sekarang kita coba masukan beberapa kode html pada “FORM” isian diatas. Misalnya saja pada form NAMA. Kita isikan kode berikut;

01 <html>
02     <head>
03         <title>Hacked</title>
04     </head>
05     <body bgcolor=green>
06         <font color=black>
07         <h1>YOU WERE HACKED</h1>
08         </font>
09     </body>
10 </html>

Makan kode HTML tersebut akan diproses dan ditampilkan pada web browser seperti gambar berikut;

Namun teknik tersebut tidak berpengaruh besar pada web server, karna kode-kode HTML tersebut hanya akan dikembalikan pada web browser client tersebut saja. Dan tidak berlaku pada client yang lain. Hal ini pun juga dapat kita curangi dengan membuat link yang menuju pada form yang sudah kita injeksi dengan kode HTML agar di klik orang lain.

Untuk mencegah teknik tersebut, kita dapat menggunakan fungsi khusus “htmlscpecialchars” seperti berikut pada file action.php.

01 <?php
02     //html code here
03     echo '<font face=calibri color=blue size=5>';
04
05     //the script
06     echo "Information about you<br>";
07     echo '<font face=calibri color=green size=3>';
08     echo "Hi " . htmlscpecialchars($_POST['name']) . '<br>';
09     echo "You are " . (int)$_POST['age'] ." years old<br>";
10     echo "You live in " . htmlscpecialchars($_POST['addr']) . " city<br>";
11 ?>

Fungsi tersebut hanya kita beri pada baris 8 dan 10 saja. Karena pada baris ke 7, semua input yang dimasukan oleh user akan dirubah menjadi integer, dan jika input tersebut berupa string, maka dalam integer akan berubah menjadi 0.

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

%d blogger menyukai ini: