1. 程式人生 > >DVWA之XSS(反射型)

DVWA之XSS(反射型)

伺服器程式碼 LOW
在這裡插入圖片描述

array_key_exists(key,array)函式檢查某個陣列中是否存在指定的鍵名,如果鍵名存在則返回 true,如果鍵名不存在則返回 false。可以看出程式碼只是判斷name是否存在是否為空,並沒有任何的過濾。

漏洞利用

在這裡插入圖片描述

url:http://localhost/DVWA/vulnerabilities/xss_r/index.php?name=<script>alert(%2Fxss%2F)<%2Fscript>#

伺服器端程式碼Medium
在這裡插入圖片描述

str_replace(find,replace,string,count) 函式替換字串中的一些字元(區分大小寫),count可選。一個變數,對替換數進行計數。類似黑名單的思想。

1.大小寫混淆繞過

在這裡插入圖片描述

url:http://localhost/DVWA/vulnerabilities/xss_r/index.php?name=<ScRipt>alert(%2Fxss%2F)<%2Fscript>#

2.雙寫繞過
<sc< script>ript>alert(/xss/)
在這裡插入圖片描述

url:http://localhost/DVWA/vulnerabilities/xss_r/index.php?name=<sc<script>ript>alert(%2Fxss%2F)<%2Fscript>#

伺服器段程式碼High
在這裡插入圖片描述

preg_replace ( mixed $pattern , mixed $replacement , mixed $subject)函式執行一個正則表示式的搜尋和替換。這使得雙寫繞過、大小寫混淆繞過(正則表示式中i表示不區分大小寫)不再有效。

無法使用< script>標籤注入XSS程式碼,但是可以通過img、body等標籤的事件或者iframe等標籤的src注入惡意的js程式碼。

< img src=1 onerror=alert(/xss/)>

在這裡插入圖片描述

url: http://localhost/DVWA/vulnerabilities/xss_r/index.php?name=<img+src%3D1+onerror%3Dalert(%2Fxss%2F)>#

伺服器端程式碼Impossible
在這裡插入圖片描述

htmlspecialchars() 函式把預定義的字元轉換為 HTML 實體。防止瀏覽器將其作為HTML元素。

預定義的字元是:

& (和號)成為 &
" (雙引號)成為 "
' (單引號)成為 '
< (小於)成為 <
> (大於)成為 >