转自个人博客:0pt1mus
00 靶场地址
http://xss-quiz.int21h.jp/
01 stage #1
题目要求执行script命令:alert(document.domain)
F12
查看源码
hidden部分不知道有啥用,但是表单POST提交的只有p1,随便写个内容上去,提交后如下。
提交内容被双引号包围""
,在插入内容左右添加“
进行闭合。
payload = '"<script>alter(document.domain);</script>"'
02 Stage #2
和第一题一样,随便输入个内容,先看源码。
可以看到内容写到了input
标签的value
属性,并且有提示,先闭合当前的标签,然后再写script。
payload = '"><script>alter(document.domain);</script><"'
03 Stage #3
查看源码,提示text box
被正确转义,但是我们还有一个选择框可以进行突破,直接讲选择框的一个选项写为payload。
然后提交表单。
04 Stage #4
提示存在一个不可见输入框,那么就在源码中找见它,修改hidden
属性,直接填写。
05 Stage #5
进行了长度限制,那么源码直接修改限制。
填入payload。
payload = '"><script>alert(document.domain);</script>'
06 Stage #6
提示事件触发属性,测试输入内容写到value属性,因此可以尝试闭合value属性,添加一个新的事件属性。
payload = '" onblur="alert(document.domain);"'
07 Stage #7
提示说几乎一样,但是棘手,那么同上,在源码直接写入payload,成功。
payload = '" onblur="alert(document.domain);"'
08 Stage #8
提示javascript
模式。并且测试发现输入的内容写为了a标签的href,可以尝试javascript伪协议。
payload = 'javascript:alert(document.domain);'
09 Stage #9
嗯?UTF-7,没接触过,各种查,没找到解法,只看到有人说UTF-7是针对之前IE的一个漏洞,而且他复现也没有成功。说是有人直接通过firebug执行命令,firebug能执行命令吗?在看回F12
,console能直接执行命令 ,是不是可以呐!成功,盖了帽了我的老baby。。。
之后题是不是都可以这样了,😂。太年轻!这还做啥。
10 Stage #10
别搞,好好做。
提示是这样的,没看明白,进行测试后,发现内容写入value属性中,继续闭合写script。
发现源码中已经解析,但是domain没了,应该是匹配之后去掉了,那么双写。
payload = '"><script>alert(document.dodomainmain);</script>'
11 Stage #11
嗯?500了。。。