XSS Challenges是出自某位日本大佬之手,一共十九關。我沒有徹底記錄下來,前八關基本上不怎麼須要思考就能作出來的,方法也不止一種。第九關是利用UTF-7而且對ie版本號有要求也不具體操做了,網上有不少關於這個挑戰的教程,想了解的能夠多看看。php
第十一關:css
http://xss-quiz.int21h.jp/stage11th.php?sid=c3eb8ec23ae4d43a5efd09a128f3adc27f4d333d
這一關其實也不難,可是揭露了我不少問題吧。
查看提示:此關是將script---->xscript,on.....---->onxxxx,style---->stxxx。
至關於過濾了關鍵字,要麼換一個關鍵字,要麼嘗試繞過。測試了大小寫不行,試試編碼。我開始是嘗試這個payload:html
aaaaa" onmouseover="alert(document.domain)
對o進行HTML十六進制編碼,結果以下圖,HTML編碼並無解析。
通過查看答案(網上搜一搜),利用以下payload就行,這裏HTML十六進制就解析了。java
aaa"><a href=javascript:alert(document.domain)>
反思:
HTML編碼的存在就是讓它在代碼中和顯示中分開, 避免錯誤。它的命名實體:構造是&加上希臘字母,字符編碼:構造是&#加十進制、十六進制ASCII碼或unicode字符編碼,並且瀏覽器解析的時候會先把html編碼解析再進行渲染。可是有個前提就是必需要在「值」裏,好比屬性src,不能對src進行html編碼,否則瀏覽器沒法正常的渲染。瀏覽器
<img src=logo.png/>------->能夠 <img src=logo.png/>------>不能夠
第十二關:
利用ie特性------->兩個反引號``能夠閉合一個雙引號,閉合以後用一個on事件就能解決。
第十三關:dom
http://xss-quiz.int21h.jp/stage13_0.php?sid=ed0934fec28eadd54ad5965c980255828ad57976
也是須要ie瀏覽器,css特性,對ie版本有要求。
第十四關:
也是須要ie瀏覽器,css特性,對ie版本有要求,可是須要簡單繞過,利用註釋:xss
/**/
第十五關:ide
http://xss-quiz.int21h.jp/stage__15.php?sid=1e785fb96bdb203c00b034203ee574681d1b4403
有過濾,嘗試各類編碼繞過。由於&被過濾,嘗試十六進制\x3c,發現\被去掉了,雙寫\\x3c能夠繞過。
這裏遇到了一個問題,若是我在<>中不輸入任何東西,是這樣的....讓我覺得仍是過濾了...害,不懂爲何。
第十六關:測試
http://xss-quiz.int21h.jp/stage00000016.php?sid=24f62decf6b502096703efcd3f86288d23e70624
利用unicode編碼繞過,一樣雙寫\
也能夠用十進制:ui
\\74script\\76alert(document.domain);\\74/script\\76
第十7、十8、十九都須要ie瀏覽器,而且版本號限制的死死的。不玩了!!!!
未完待續......