00 靶场地址

http://xss-quiz.int21h.jp/

01 stage #1

image-20210415165811908

题目要求执行script命令:alert(document.domain)

F12查看源码

image-20210415170002037

hidden部分不知道有啥用,但是表单POST提交的只有p1,随便写个内容上去,提交后如下。

image-20210415170157742

提交内容被双引号包围"",在插入内容左右添加进行闭合。

1
payload = '"<script>alter(document.domain);</script>"'

image-20210415202542703

02 Stage #2

 和第一题一样,随便输入个内容,先看源码。

image-20210415202333940

可以看到内容写到了input标签的value属性,并且有提示,先闭合当前的标签,然后再写script。

1
payload = '"><script>alter(document.domain);</script><"'

image-20210415202600574

03 Stage #3

image-20210416172210838

查看源码,提示text box被正确转义,但是我们还有一个选择框可以进行突破,直接讲选择框的一个选项写为payload。

image-20210416172502944

然后提交表单。

image-20210416172519638

04 Stage #4

image-20210416172820506

提示存在一个不可见输入框,那么就在源码中找见它,修改hidden属性,直接填写。

image-20210416172954307

image-20210416173027433

05 Stage #5

image-20210416173154109

进行了长度限制,那么源码直接修改限制。

image-20210416173222719

填入payload。

1
payload = '"><script>alert(document.domain);</script>'

image-20210416173235815

06 Stage #6

image-20210416173432384

提示事件触发属性,测试输入内容写到value属性,因此可以尝试闭合value属性,添加一个新的事件属性。

1
payload = '" onblur="alert(document.domain);"'

image-20210416190144752

07 Stage #7

image-20210416190404672

提示说几乎一样,但是棘手,那么同上,在源码直接写入payload,成功。

1
payload = '" onblur="alert(document.domain);"'

image-20210416190501323

08 Stage #8

image-20210416191138006

提示javascript模式。并且测试发现输入的内容写为了a标签的href,可以尝试javascript伪协议。

1
payload = 'javascript:alert(document.domain);'

image-20210416191455395

09 Stage #9

image-20210416202719817

嗯?UTF-7,没接触过,各种查,没找到解法,只看到有人说UTF-7是针对之前IE的一个漏洞,而且他复现也没有成功。说是有人直接通过firebug执行命令,firebug能执行命令吗?在看回F12,console能直接执行命令 ,是不是可以呐!成功,盖了帽了我的老baby。。。

image-20210416204903071

之后题是不是都可以这样了,😂。太年轻!这还做啥。

10 Stage #10

别搞,好好做。

提示是这样的,没看明白,进行测试后,发现内容写入value属性中,继续闭合写script。

image-20210416205630622

发现源码中已经解析,但是domain没了,应该是匹配之后去掉了,那么双写。

1
payload = '"><script>alert(document.dodomainmain);</script>'

image-20210416205759387

11 Stage #11

image-20210416210125074

嗯?500了。。。