今天來用我們前幾天下載的 DVWA 進行 XSS 實戰吧!
登入 DVWA

到 Security 把 level 調到 LOW
這裡可以調整網站的安全等級

就可以開始實戰了!
來到 XSS (Reflected) 我們會看到


先輸入一點東西看看
這裡輸入"test" ,會發現有一行 "Hello test" 跳出來了,上面 URL 也多出了一個參數 name

透過 F12 我們可以發現 "Hello test" 的字串好像是直接插入進頁面的
右下角的按鈕可以看 source code 或 help

soucre code

他沒有過濾就直接把字串接起來
所以可以直接輸入

或是在URL打
XSS 成功 !!!


接下來把 level 調到 Medium
試一下剛才的 payload <script>alert(1)</script>

沒有用了
看一下 soucre code

他利用 str_replace() 把 <script> 替換成空字元了
沒事我們還有辦法, 我們可以繞過他,由於HTML是個弱型別語言,所以就算標籤的大小寫錯誤也還是可以正常執行

XSS 成功 !!!

接下來把 level 調到 High
我們直接來看 soucre code

糟糕他這次防的更深了,只要我有<script>,不論大小寫,一律替換成空白
既然這樣那就不用 <script> 了
還記得那些可以觸發的 javascript 事件嗎
我們改用 <img> 試試
<img src="" onerror="alert(1)">
XSS 成功 !!!


接下來把 level 調到 Impossible (不可能)
一樣來看 source code

htmlspecialchars() 可以把一些特殊字元換成 HTML 的實體符號

這樣才是防範 XSS 比較好的方式