客戶端腳本植入(Script Insertion),指將可執行的腳本插入表單、圖片、動畫或超連結文字等物件內。當使用者開啟這些物件後,攻擊者所植入的腳本就會被執行,進而開始攻擊。 可以被用作腳本植入的HTML標籤一般包括以下幾種: 1、標籤標記的javascript和vbscript等頁面腳本程式。在<script>標籤內可以指定js程式碼,也可以在src屬性內指定js檔案的URL路徑 2、標籤標記的物件。這些物件是java applet、多媒體檔案和ActiveX控制項等。通常在data屬性內指定物件的URL路徑 3、標籤標記的物件。這些物件是多媒體文件,例如:swf文件。通常在src屬性內指定物件的URL路徑 4、標籤標記的物件。這些物件是java applet,通常在codebase屬性內指定物件的URL路徑 5、 標籤標記的物件。通常在action屬性內指定要處理表單資料的web應用程式的URL路徑客戶端腳本植入的攻擊步驟 1、攻擊者註冊普通用戶後登陸網站 2、開啟留言頁面,插入攻擊的js代碼 3、其他用戶登錄網站(包括管理員),瀏覽此留言的內容 4、隱藏在留言內容中的js代碼被執行,攻擊成功 實例 數據庫 CREATE TABLE `postmessage` ( `id` int(11) NOT NULL auto_increment, `subject` varchar(60) NOT NULL default ”, `name` varchar(40) NOT NV varcharMi” ` varchar(25) NOT NULL default ”, `question` mediumtext NOT NULL, `postdate` datetime NOT NULL default '0000-00-00 00:00:00′,``7 ) ENGINE=MyISAM DEFAULT CHARSET=gb2312 COMMENT='用戶的留言' AUTO_INCREMENT=69 ; //add.php 插入留言 //list.php 留言//add.php 插入留言//list。 提交下圖的留言 瀏覽此留言的時候會執行js腳本插入while(1){windows.open();} 無限彈框插入location.href="http://www.php1.cn/"> 或使用其他自行建構的js程式碼進行攻擊 防範的方法 一般使用htmlspecialchars函數來將特殊字元轉換成HTML編碼 函數原型 string htmlspecialchars (string string, int quote_style, string charset) string 是要編碼的字串 quote_style 可選,值可為預設值、D.轉換雙引號不轉換單引號。轉換成html編碼: & —-> & " —-> " ' —-> ' > —-> > 把做.改成 然後再看插入js的漏洞頁面 然後再查看插入js的漏洞頁面 -客戶端腳本植入的內容,更多相關內容請關注PHP中文網(www.php.cn)!