DVWA-Xss(reflected)(反射型跨站指令碼攻擊)
本系列文集:DVWA學習筆記
- 反射型Xss <全稱跨站指令碼攻擊,是一種在web應用中的電腦保安漏洞,它允許惡意web使用者將程式碼植入到提供給其它使用者使用的頁面中。>
- xss攻擊思路

1.png
Low:
點選右下角的view source,檢視原始碼

2.png
分析:
arrary_key_exists()函式:判斷$_GET的值中是否存在“name”鍵名。並且$_GET[‘name’]的值是否不為空,滿足這些條件,直接輸出下面的輸出語句。可以看到,程式碼直接引用了name引數,並沒有任何的過濾與檢查,存在明顯的XSS漏洞。
payload:<scrpit>alert(‘xss’)</script>

3.png
Medium:
原始碼:

4.png
分析:
這裡對輸入進行了過濾,基於黑名單的思想,使用str_replace函式將輸入中的<script>轉化為空。然後在將name值的結果輸出。,這種防護機制是可以被輕鬆繞過的。
1.大小寫混淆繞過(str_replace()函式不太完美,因為它區分大小寫)
Payload:<ScRipt>alert(/xss/)</script>
Payload:<SCRIPT>alert(/xss/)</SCRIPT>

5.png
2.雙寫繞過
Payload:<sc<script>ript>alert(/xss/)</script>

6.png
3.構造不使用<script>標籤進行繞過
payload:<img src=1 onerror=alert(/xss/)>
解釋:<img ..>標籤是新增一個圖片,src是指定圖片的url,onerror是指定載入圖片時如果出現錯誤則要執行的事件,這裡我們的圖片url肯定是錯誤的,這個彈框事件也必定會執行

7.png
High:
原始碼:

8.png
分析:
High級別的程式碼同樣使用黑名單過濾輸入,preg_replace() 函式將包含<script的字元,不管大小寫,不管後面跟著1個或多個與之相同的字元都轉換為空。用於正則表示式的搜尋和替換,這使得雙寫繞過、大小寫混淆繞過(正則表示式中i表示不區分大小寫)不再有效。
Payload:<img src=1 onerror=alert(‘xss’)>

9.png