HTTP攻擊與防範-跨站攻擊-01簡介
實驗目的
1、掌握WEB滲透測試跨站攻擊原理
2、瞭解WEB站點的跨站攻擊脆弱性
3、修復存在跨站攻擊可能的漏洞
實驗原理
XSS又叫CSS (Cross Site script) ,跨站指令碼攻擊。它指的是惡意攻擊者往Web頁面裡插入惡意指令碼程式碼, 當用戶瀏覽該頁之時,嵌入其中Web裡面的指令碼程式碼會被執行,從而達到惡意攻擊使用者的特殊目的。
實驗內容
1、掌握跨站攻擊的基本原理
2、瞭解WEB站點的脆弱性-XSS
3、通過掌握的只是能夠修復XSS的漏洞
實驗環境描述
實驗環境 VPC1(虛擬PC) 作業系統型別:windows,網路介面:本地連線 VPC1 連線要求 PC 網路介面,本地連線與實驗網路直連 軟體描述 1、學生機要求安裝java環境 2、vpc安裝windows 實驗環境描述 1、學生機與實驗室網路直連; 2、VPC1與實驗室網路直連; 3、學生機與VPC1物理鏈路連通;
實驗步驟
1.學生進入系統後開啟虛擬機器,輸入使用者名稱和密碼,使用者為admin密碼為 123456
2.進入系統後,首先開啟xampp工具,手動開啟apache與MySQL伺服器
3.開IE瀏覽器,輸入http://localhsot:8080/xss/ ,即可登入如圖所示頁面:
4.我們使用的跨站指令碼演示環境如下:
5.檢視跨站指令碼演示目錄的結構,點選開始->執行->輸入cmd,開啟命令提示符
6.進入dos視窗,輸入:cd c:\xampp\htdocs\xss
7.檢視程式碼文件結構樹,輸入命令如下:tree /f
8.檢視文件info.php程式碼,輸入命令如下:type info.php
9.檢視文件index.php程式碼,輸入命令如下:type index.php
10.切換到IE瀏覽器視窗
11.演示反射型跨站指令碼攻擊漏洞: 正常情況下,使用者會在URL中提交引數name的值為自己的姓名,然後該資料內容會通過以上程式碼在頁面中展示,如使用者提交姓名為“張三”,完整的URL地址如下: www.sql.com:8080/xss/info.php?name=張三 點選”反射型XSS跨站指令碼攻擊漏洞”,在瀏覽器中訪問時,會顯示如下圖1所示內容:
12、此時,因為使用者輸入的資料資訊為正常資料資訊,經過指令碼處理以後頁面反饋的原始碼內容為。
<p>歡迎您, 張三!</p>
但是如果使用者提交的資料中包含有可能被瀏覽器執行的程式碼的話,會是一種什麼情況呢? 我們繼續提交name的值為
'<script>alert我的名字是張三</script>'
即完整的URL地址為
/www.sql.com:8080/xss/info.php?name=<script>alert我的名字是張三</script>
我們點選後退按鈕,進入xss跨站攻擊演示環境
13.我們點選“反射型XSS跨站指令碼攻擊”連結,在瀏覽器中訪問時,我們發現會有彈窗提示,如下圖所示:
14、那麼此時頁面的原始碼又是什麼情況呢? 原始碼變成了
“<p>歡迎您, <script>alert我的名字是張三</script>!</p>”
從原始碼中我們發現,使用者輸入的資料中,
script與/script標籤中的程式碼被瀏覽器執行了,而這並不是網頁尾本程式想要的結果。 這個例子正是最簡單的一種XSS跨站指令碼攻擊的形式,稱之為反射型XSS。
15、在對一個網站進行安全檢測的時候,檢測者並不知道被檢測的網站使用的是什麼資料庫及網頁程式語言,需要對其進行一些手動探測。
點選剛才彈出的視窗“確定”按鈕。
16.點選後退按鈕,進入xss跨站攻擊演示環境
17.切換到dos視窗,我們檢視一下“基於DOM的XSS跨站指令碼攻擊”的演示環境程式碼
18.輸入命令,type DOM_Based_XSS_Demo.php
19.切換到IE瀏覽器視窗
20.我們點選“基於DOM的XSS跨站指令碼攻擊”連結
21.以上程式碼的作用是提交一個圖片的URL地址以後,程式會將圖片在頁面中進行展示,如我們提交http://127.0.0.1:8080/dvwa/的LOGO圖片的地址: http://127.0.0.1:8080/dvwa/dvwa/images/login_logo.png,那麼在頁面中展示結果如下圖所示。
22.當用戶輸入完http://127.0.0.1:8080/dvwa的LOGO的地址,點選“提交”按鈕後,“提交”按鈕的onclick事件會呼叫xsstest()函式。
而xsstest()函式會獲取使用者提交的地址,通過innerHTML將頁面的DOM節點進行修改,把使用者提交的資料以HTML程式碼的形式寫入頁面中並進行展示。
以上例子中輸出的HTML程式碼為
"<img src="http://127.0.0.1:8080/dvwa/dvwa/images/login_logo.png"></img>"
23.以上情況為正常的使用者輸入情況,那黑客又是怎麼利用該種類型程式碼實現XSS跨站指令碼攻擊的呢?
黑客可以通過構造如下資料,輸入: #' onerror=' javascript:alert(/DOM Based XSS Test/),
在瀏覽器中提交後,發現程式碼果然被執行,出現了彈窗提示,如下圖所示。
24、實驗完畢,關閉虛擬機器和所有視窗。