這幾天對XSS Challenges平臺進行了練習,網上也有一些相應的解答博客,可是寫得都差很少,我以爲能夠試一下從怎麼作這種題的角度出發去思考問題。javascript
第一題:http://xss-quiz.int21h.jp/php
大概意思就是彈窗內容爲(document.domain);就能夠通關。直接使用<script>alert(document.domain);</script>實驗一下java
能夠看到已經經過,第一關基本就是送分題瀏覽器
接下來進入第二關 http://xss-quiz.int21h.jp/stage2.php?sid=106cdb0a46450efb744850a579323ac9103d907cdom
首先輸入最簡單的XSS代碼實驗一下,發現並無通關,而後查看源代碼xss
能夠看到XSS所在的位置在input語句裏面,閉合以前的代碼"><script>alert(document.domain);</script>< 就能夠通關ui
這道題的考點就是閉合原來的語句就是:關閉當前標籤而後添加腳本編碼
第三關 http://xss-quiz.int21h.jp/stage-3.php?sid=d830eb35fde6abc802cb930e5ba1b2adaaf6680d3d
直接使用<script>alert(document.domain)</script>試驗一下,發現沒有成功,輸入框位置使用的name="p1"代替blog
用burp抓個包看一下
能夠看到p1的內容,輸入的字符被轉義了,修改p1爲<script>alert(document.domain)</script>嘗試繞過試過一下
發現並不行,但p1後面還有一個p2,修改p2的內容爲<script>alert(document.domain);</script>實驗一下
此次能夠經過了,這道題p1輸入的內容被轉義了,可是p2的內容沒有作校驗,能夠抓包修改數據包進行攻擊
第四題 http://xss-quiz.int21h.jp/stage_4.php?sid=9fb2ab3ae196c1fb05d9157d3d5f6c91b2b4398c
首先仍是直接輸入<script>alert(document.domain);</script>看一下,發現沒有成功
查看源代碼,發現這道題和剛剛第三題的狀況很類似,抓個包在看看
數據包中數據,也是大同小異,但此次多了一個p3比較可疑,但仍是得一步一步來,幾回嘗試,發現修改p1參數被轉義了,p2的值修改以後又會恢復成Japan,都是沒有效果。而後嘗試修改p3的值
提交以後發現並無什麼用
這時查看一下源代碼
能夠看到p3修改的值沒有轉義,能夠進一步利用,可是能不能執行還不知道,由於此時咱們須要將標籤閉合
我是直接在這裏修改的看着沒啥問題以後,再抓包修改p3的值嘗試一下
這樣第四關就過了,這一關看起來和第三關形式比較像,而後我先按照第三關的模式試了一下,發現p1被轉義,p2修改不了,p3能夠修改又沒有被轉義,查看源代碼以後結合第二關的思路開始進行的嘗試。
第五關 http://xss-quiz.int21h.jp/stage--5.php?sid=2d4972900f3da3e4e8dd3bb442c5e59402ede268
首先仍是直接輸入<script>alert(document.domain)</script>嘗試一下,發現沒有成功,而後查看一波源代碼進行分析
能夠看到輸入的內容並無被轉義,因此說仍是有機會的,可是添加了檢驗maxlength="15",這時我首先想到的是使用burp進行繞過。水平有限,因此我先利用源代碼編輯一下繞過的語句,看着沒問題了直接貼到burp就好了
發現能夠經過了,這一關仍是挺簡單的,考點應該就是繞過校驗,還有閉合標籤
第六題 http://xss-quiz.int21h.jp/stage-no6.php?sid=60b74c922558e644330a8769788ef25dae80d8e0
首先輸入<script>alert(document.domain)</script>嘗試一下,而後查看一下源代碼
而後我決定先閉合標籤試一下
而後和以前比較了一下,發現"<" ,">"是這兩個標籤被轉義了,嘗試繞過試一下
沒辦法繞過,不能使用<>可是能夠構造" onmouseover="alert(document.domain)攻擊
第七題 http://xss-quiz.int21h.jp/stage07.php?sid=c702ac5f967df2831c3920c1aa3100af0b3e5aa8
仍是不能成功,而後試了一下先閉合標籤繞過也沒啥用,使用" onmouseover="alert(document.domain)時,發現輸入的信息被截斷了
這道題有點懵,查看了一波網上的教程,說是"被過濾了,而後我試了一下
實驗了一下以爲應該是 "空格 以後的內容被截斷了,這道題可使用可使用test onmouseover=alert(document.domain) 空格符分割進行
第八題 http://xss-quiz.int21h.jp/stage008.php?sid=b23793aaeaad16b5faa949a246a1316e9cf24917
第八題主要考察的是在a標籤的使用。僞協議不一樣於因特網上所真實存在的協議,如http://,https://,ftp://,
而是爲關聯應用程序而使用的.如:tencent://(關聯QQ),data:(用base64編碼來在瀏覽器端輸出二進制文件),還有就是javascript:
能夠在Chrome瀏覽器輸入"javascript:alert("XSS");"實驗一下,其實是把javascript:後面的代碼當JavaScript來執行,並將結果值返回給當前頁面。
而後回到這道題,題目是輸入一個URL,直接提交javascript:alert(document.domain),點擊下面的連接就能夠過關了
第九題 http://xss-quiz.int21h.jp/stage_09.php?sid=7e3613202c0e7cc4ed129d4c60b98dbe887aa456
這個好像得用IE 7 環境加上UTF7編碼才行,有時間搭起環境再試一下吧,暫時先跳過了
第十題 http://xss-quiz.int21h.jp/stage00010.php?sid=b86e436416bd0ed72ba8e07ffd237471e7bd006d
輸入<script>alert(document.domain);</script>,肯定,發現domain,被過濾了
這個時候用雙寫domain、或者大小寫均可以繞過,可是大小寫不符合這道題的要求,因此使用雙寫再加上閉合標籤就能夠經過
"><script>alert(document.dodomainmain);</script><