第一關:我們發現頁面上沒有任何可以輸入的地方
但是發現url中有參數傳遞為test,而頁面上也顯示了test,是以說,傳入的參數可以顯示到頁面上。
使用f12控制台檢視原代碼
我們傳入
<script></script>
這裡可以發現,原本來的test不見了,按理來說應該會出現歡迎使用者
<script></script>
才對,但是沒有,到哪裡去了,沒錯,他被浏覽器解析了,在這個标簽中就可以插入你想執行的js代碼
我們由于靶場需要彈窗才能進入下一關,是以傳入
<script>alert()</script>
進入下一關
第二關:
有輸入框,直接插入嘗試
沒有成功,右鍵檢視源代碼
發現上面的文字内容被html實體化編碼了,但是下面輸入框裡還會顯示原内容但是在value值内浏覽器無法解析,我們嘗試閉合value屬性使用
>"<script></script>#
成功閉合,#是為了注釋後面原有的>"
彈窗進入下一關
第三關:
同樣使用上一關的payload來嘗試,沒有成功,右鍵檢視源碼
發現連value值裡的内容都被實體化編碼了,是以,我們需要嘗試其他辦法來執行js代碼
我們可以發現我們傳入的值是在input标簽中的,而标簽都有屬性,我們可以給他添加一個屬性,利用這個屬性來執行js代碼,雙引号閉合失敗就嘗試單引号閉合value
這裡onmouseover是嵌入到input中的一個屬性,他的作用是滑鼠滑過時執行javascript代碼,成功繞過。
第四關:
我們首先嘗試直接插入
發現括号被過濾了,那我們就嘗試不使用括号的方法,也就是屬性值。"οnmοuseοver='alert()'于前一關不同的是使用了雙引号來閉合value
第五關:
同樣直接插入
我們發現其中一個script被加了下劃線,嘗試onmouseover
同樣被加了下劃線
但同樣的,這個标簽還是可控的,我們可不可以直接将頁面閉合,自己建立一個标簽呢 ,建立一個a标簽超連結">123
點選超連結通關
主要是get到這幾個點,通過直接插入,通過事件,通過閉合标簽,後面幾關意思不大,我之後會總結繞過方式。