在線靶場(http://xss.fbisb.com)
w
第一關
get請求,沒有什么過濾,直接上<script>alert()</script>
源碼:
第二關
輸入參數會顯示在文本框,直接看頁面源碼
發現對輸入的參數<>進行了HTML實體化導致不能執行js,但是輸入參數會顯示在文本框並且沒有經過處理
進行對input標簽的閉合,使輸入的js代碼執行
源碼
htmlspecialchars()函數是使用來把一些預定義的字符轉換為HTML實體
被轉換的預定義的字符有:
&:轉換為& ":轉換為"':轉換為成為 '<:轉換為<>:轉換為>
第三關
和第二個差不多,直接上"><script>alert()</script>,但是發現沒有像上一關一樣
查看頁面源碼發現input文本框的值也被實體化了,注意這一關使用的是單引號
這時候該是考慮為協議的時候到了,onclick 當點擊按鈕時執行一段 JavaScript
不錯,成功,輸入成功文本框是空的。當我們點擊他就會執行js代碼
源碼
第四關
輸入敏感字體發現<>不見了,直接看頁面源碼
可以看到<>被過濾了,但是我們還有onclick,注意雙引號了,這二貨
完美
源碼
第5關
上面是我輸入的直接實體化,不用想了,拿來看還是不錯的,文本框是服務器處理后的可以發現script被替換了,直接查源碼
可以看出,script ,onclick 等都被替換了,不過<>"都沒有,這個可以利用<a>標簽
直接構造代碼,注意閉合input,變成"><a href=javascript:alert()>123</a>,頁面重新超鏈接,點擊就會調用我們的js了
源碼
第六關
經過前面的做題,我發現太慢了,直接在空格輸入敏感詞,這樣方便多了,這不把我可愛的href也也替換了
我瞬間又想到了<img>,誰知道,又把src替換了
居然你有規則知道我輸入非法參數,那我就試試繞過你的規則,大小寫,復寫,編碼,這一題,復現肯定不合適,所有大小寫咯,
源碼
第七題
把我可愛的script替換了,這不這一天復現的機會來了
不錯,
源碼
第八關
輸入敏感詞,沒反應直接看頁面源碼
也是script被替換了,試過大小寫不行,那么只能是編碼
把其中的p轉換成16進制,🆗。注意轉換編碼不能全部轉換,不然js會不被識別
源碼
第九關
輸入敏感詞,獲取不到上面有用的信息,看頁面源碼
whit?不合法,為啥,想一想我們平時訪問網頁,前面都有http://,https://
,
沒毛病,果然http://可以,https://不行,那就簡單了
🆗,其中的script也進行了替換,直接16編碼P,幾把在http://前面加//注釋調,不然js會出差執行不了
源碼
第十關
輸入敏感詞,沒什么利用信息,看源碼
輸入敏感實體化,沒什么利用,不過找到三個input標簽並且都有name,可以試試
發現有一個參數可控
構造js偽協議,不過要在前面加type=text,不然type=hidden隱藏,那就點個錘子
源碼