首頁  >  文章  >  後端開發  >  PHP漏洞全解(三)-客戶端腳本植入

PHP漏洞全解(三)-客戶端腳本植入

黄舟
黄舟原創
2016-12-22 09:20:251228瀏覽

客戶端腳本植入(Script Insertion),指將可執行的腳本插入表單、圖片、動畫或超連結文字等物件內。當使用者開啟這些物件後,攻擊者所植入的腳本就會被執行,進而開始攻擊。

可以被用作腳本植入的HTML標籤一般包括以下幾種:

1、<script>標籤標記的javascript和vbscript等頁面腳本程式。在<script>標籤內可以指定js程式碼,也可以在src屬性內指定js檔案的URL路徑</script>

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代碼被執行,攻擊成功

PHP漏洞全解(三)-客戶端腳本植入

實例

數據庫

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。

提交下圖的留言

PHP漏洞全解(三)-客戶端腳本植入

瀏覽此留言的時候會執行js腳本


插入<script>while(1){windows.open();}</script> 無限彈框插入<script>location.href="http://www.php1.cn/"></script>

或使用其他自行建構的js程式碼進行攻擊

防範的方法

一般使用htmlspecialchars函數來將特殊字元轉換成HTML編碼

函數原型

string htmlspecialchars (string string, int quote_style, string charset)

string 是要編碼的字串 

quote_style 可選,值可為預設值、D.轉換雙引號不轉換單引號。轉換成html編碼:

& —-> &

" —-> "

' —-> '

> —-> >

把做.改成

然後再看插入js的漏洞頁面

然後再查看插入js的漏洞頁面

-客戶端腳本植入的內容,更多相關內容請關注PHP中文網(www.php.cn)!

PHP漏洞全解(三)-客戶端腳本植入

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn