xss one:

第一題觀察了以后發(fā)現(xiàn)只有name這個參數(shù)可以進行輸入,因此測試點只有可能在name這里,于是直接把hacker改成<script>alert(1)</script>就可以了。效果如下:

xss two:

發(fā)現(xiàn)<script>標簽被過濾掉了,因為html和js不區(qū)分大小寫,所以可以試試<script>標簽的大小寫來嘗試問題,然后發(fā)現(xiàn)用<Script>alert(1)</sCript>可以解決問題。

Xss Three:

發(fā)現(xiàn)<script>標簽完全被過濾掉了,而且大小寫形式也過濾掉,于是反過來應(yīng)用這個方法,添加標簽為<scr<script>ipt>alert(1)</sc</script>ript>,當(dāng)服務(wù)器把<script>標簽提取出來時候,就可以直接添加<script>了,效果如圖所示:

XSS Four:

這次使用<script>標簽后沒有給到任何輸出格式,而是直接給了個error,這種無法看到輸出樣子的xss就沒法直接用<script>標簽了,于是改用<img>標簽使用一下,我們用了name=<img>,發(fā)現(xiàn)不會報錯,于是這個標簽可以使用,接著用<img src="1" onerror="alert(1)">解析一下,這里的src是圖片路徑的屬性,onerror是發(fā)生錯誤的時候觸發(fā)什么動作,于是發(fā)現(xiàn)可以使用了。如圖:

XSS Five:

這次我們發(fā)現(xiàn)onerror的標簽中的alert()也被直接過濾掉了,因此需要使用別的方法,在javascript中有一個轉(zhuǎn)換編碼的函數(shù)調(diào)用String.fromCharCode(),這個函數(shù)直接從unicode編碼轉(zhuǎn)換回字符串,因此我們直接使用了該函數(shù),括號里面的編碼用alert(1)的unicode編碼,構(gòu)造如下所示的payload:
<img src=1 onerror="eval(String.fromCharCode(97,108,101,114,116,40,39,97,39,41))">
這里要注意的就是我們的函數(shù)要注意書寫正確,我在試的時候發(fā)現(xiàn)string.fromcharcode是錯誤的。
XSS SIX:

這道題查看了一下源代碼,發(fā)現(xiàn)我們的hacker輸入是放在<script>標簽里面的,因此可以直接閉合掉前面礙人的<script>標簽自己新建一個,然后進行處理,自己構(gòu)造的payload如下所示:
想寫個name=多少的式子結(jié)果發(fā)現(xiàn)簡書居然不肯讓我寫這個標簽。。。。上圖吧

源代碼構(gòu)造如下所示。。。。。

XSS SEVEN:
這道題主要是用了html編碼把<和>編碼了,看源代碼:

解決方法很簡單,直接不用<script>標簽了,用他的就好了,于是我構(gòu)造payload如下圖:

直接把他的單引號閉合了,然后把他的<script>標簽用起來就好了。
XSS EIGHT:
這道題目<>被html編碼了,如下:

本題的缺點出現(xiàn)在form的url這里,在url處并未進行過濾,因此可以從URL構(gòu)造payload:/"<><script>alert(1)</script>,如圖:


XSS NIGHT:
這是一道dom xss題目,只能在瀏覽器執(zhí)行,而且firefox和chrome直接攔截了。實測ie可以
問題出現(xiàn)在document.write(location.hash.substring(1));該函數(shù)返回url中部分內(nèi)容,因此直接構(gòu)造payload:#<script>alert(1)</script>
