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浏览器,而且版本号限制的死死的。不玩了!!!!
未完待续......