PHP漏洞全解(三)-用戶端指令碼植入

來源:互聯網
上載者:User
用戶端指令碼植入(Script Insertion),是指將可以執行的指令碼插入到表單、圖片、動畫或超連結顯示文字等對象內。當使用者開啟這些對象後,攻擊者所植入的指令碼就會被執行,進而開始攻擊。

可以被用作指令碼植入的HTML標籤一般包括以下幾種:

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

2、<object>標籤標記的對象。這些對象是java applet、多媒體檔案和ActiveX控制項等。通常在data屬性內指定對象的URL路徑

3、<embed>標籤標記的對象。這些對象是多媒體檔案,例如:swf檔案。通常在src屬性內指定對象的URL路徑

4、<applet>標籤標記的對象。這些對象是java applet,通常在codebase屬性內指定對象的URL路徑

5、<form>標籤標記的對象。通常在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 NULL default ”,

`email` varchar(25) NOT NULL default ”,

`question` mediumtext NOT NULL,

`postdate` datetime NOT NULL default ’0000-00-00 00:00:00′,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=gb2312 COMMENT=’使用者的留言’ AUTO_INCREMENT=69 ;

//add.php 插入留言

//list.php 留言列表

//show.php 顯示留言

提交的留言


瀏覽此留言的時候會執行js指令碼

插入 <script>while(1){windows.open();}</script> 無限彈框

插入<script>location.href="http://www.php1.cn/">

或者使用其他自行構造的js代碼進行攻擊

防範的方法

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

函數原型

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

string 是要編碼的字串

quote_style 可選,值可為ENT_COMPAT、ENT_QUOTES、ENT_NOQUOTES,預設值ENT_COMPAT,表示只轉換雙引號不轉換單引號。ENT_QUOTES,表示雙引號和單引號都要轉換。ENT_NOQUOTES,表示雙引號和單引號都不轉換

charset 可選,表示使用的字元集

函數會將下列特殊字元轉換成html編碼:

& —-> &

" —-> "

‘ —-> ‘

< —-> <

> —-> >

把show.php的第98行改成

<?php echo htmlspecialchars(nl2br($row['question']), ENT_QUOTES); ?>

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

以上就是PHP漏洞全解(三)-用戶端指令碼植入的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.