xss challenges writeup(下)

stage11

鏈接:http://xss-quiz.int21h.jp/stage11th.php?sid=d96d48271b06401dacdf4b97aa0651385b685c06

先來個探針吧,發現輸出還是在input的value屬性中,測試發現雙引號與大於符號都沒有被過濾,意味着是可以通過添加屬性,或是直接閉合標籤兩種方式來進行繞過。我們一個一個嘗試,先來試試添加事件屬性吧,試試onmouseover=alert(document.domain),查看源碼發現輸出變成了:
這裏寫圖片描述
,可以看到我們的時間屬性變成了onxxx,我多試了幾個發現都變成了onxxx的形式,看來事件屬性這一條路是走不通了!我們接下來試試閉合標籤的方法,"><script>alert(document.domain)</script>,同樣的變成了<xxscript></xxscript>的形式,再試試其它標籤(<img><a>等)<a href="javascript:alert(document.domain)">xss</a>,這樣是不行的,script會被替換成xscript,所以我們需要對script中某一字符進行html編碼,所以利用代碼如下:

"><a href="java&#x73;cript:alert(document.domain)">hello</a>


這裏的解碼順序應該是html->url->javascript
注:此處繞過編碼問題可以參考:https://www.cnblogs.com/kuoaidebb/p/3983886.html
如果由不懂的地方歡迎與我討論,我會第一時間迴應

stage12

鏈接:http://xss-quiz.int21h.jp/stage_no012.php?sid=838924f09a1a09cf3bd83a07346c210a07cf03ff

輸出在input的value屬性中,同樣的需要閉合雙引號,但是這裏雙引號都被過濾了,直接替換爲空了,那麼我們就只有試試再ie環境下用反引號來閉合屬性了,然後隨便試了個屬性就彈窗成功了:

onmouseover=alert(document.domain)
這裏寫圖片描述

stage13

鏈接:http://xss-quiz.int21h.jp/stage13_0.php?sid=d33513b8c3117e9c518e825f6969d86669387355

這次的輸入是作爲css的值,還是先用同樣的套路試一下,看看能否閉合雙引號,遺憾的是不能,這次連反引號在ie都不起作用了(具體原因先忽略),總之這次是逃不出這個雙引號了,那麼我們就只有在css上下功夫了,我想到了兩種方式:

1.利用css的expression語句(只能在ie下進行)
2.利用css中可以存在url的地方,這樣我們就可以利用javascript僞協議

第一種方式:xss:expression(onmouseover=function(){alert(document.domain);});
這裏寫圖片描述

第二種方式background-color:red;background:url(javascript:alert(1));
第二種方式經過部分測試,是不成功的,因爲在我的測試瀏覽器下都是對alert(document.domain)的左右括號進行了url編碼的,我通過一些代碼混淆方式也沒有繞過,所以此方法大家可以用較低版本的ie嘗試一下

stage14

鏈接:http://xss-quiz.int21h.jp/stage-_-14.php?sid=7f93dcfde873958e81eb57343097c4f910e84ccb

按照stage13的套路試下,發現expression被替換成了xxx,因爲在css中嘛,我們可以通過在expression這個單詞中插入一些不影響瀏覽器解析的東西來繞過過濾器。比如:/**/、\、\0這些字符都可以(親測有效,在ie下)

xss:expressi/**/on(onmouseover=function(){alert(document.domain);});

stage15

鏈接:http://xss-quiz.int21h.jp/stage__15.php?sid=c3c248487e6d9efa3097da52aa05a7a58ddefc8f
這次輸入的值用document.write()輸出在了頁面之中,不過還是經過了編碼的,因爲我直接輸入<script>alert(document.domain)</script>,script標籤的兩個尖括號是被編碼成了html實體的,所以我們只需要簡單的利用代碼混淆的知識,對尖括號進行unicode編碼就行:

\\u003cscript\\u003ealert(document.domain)\\u003c/script\\u003e

這裏寫圖片描述

stage16

鏈接:stage16
感覺輸出位置與上一題一致,於是就拿stage15的代碼試試,結果就彈了:
這裏寫圖片描述
當然我還是要知道到底過濾了什麼,於是查看了提示:“document.write();” and “s/\x/\\x/ig;”,可以看到題目過濾了\x這種形式的代碼混淆方式,但是我湊巧就用了\uxxxx這種形式,所以就過了

stage17

鏈接:stage17

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章