反射型XSS :
反射型XSS 是非持久性、參數型的跨站腳本。反射型XSS 的JS 代碼在Web 應用的參數(變量)中,如搜索框的反射型XSS。在搜索框中,提交PoC[scriptalert(/xss/)/script],點擊搜索,即可觸發反射型XSS。注意到,我們提交的poc 會出現在search.php 頁面的keywords 參數中。
就我個人理解而言,簡單來說反射型XSS就是對于用戶的輸入沒有任何限制(過濾),所以用戶可以輸入惡意js代碼被頁面解析
下面是幾個簡單的反射型XSS的靶場
level1
img標簽可以引入圖片
超鏈接
level2(input表單)
引入了HTML實體,將<實體化了,將p標簽顯示到頁面上,導致失效。(使用過濾函數進行js惡意代碼的預防)
總共頁面可以接受三種編碼:urlcode,html實體編碼,js unicode
解題思路,雙引號閉合,逃逸出value。
1.用戶參與
用戶點擊:a"onclick"alert(1) 最后用戶得觸發
鼠標滑過:a"onmouseover"alert(1) 鼠標滑過
2.用戶不參與
"a”><script>alert(1)</script>>
雙引號提前閉合了,后面的標簽就能正常顯示了
level3
從題目就可以看出
最外層是拿單引號在過濾,并且沒有設置過濾單引號
可以就看到onclick函數已經標紅了
level4
第四關和第三關類似,只是這次是雙引號
level5
第五關過濾了關鍵詞,比如on,還有script標簽,關鍵在于沒有過濾<尖括號
多設置一aaaaa的標簽
level6
第六關多過濾了幾個標簽,但是 還是沒有過濾標簽。關鍵區分大小寫,html中可以這么些,但是在js中不能這么寫。
level7
這種過濾比較垃圾,他只過濾一次,你可以雙寫on來繞開過濾
level8
這一關關鍵在于改成其他編碼。