标签:
level 0: 注意补全,");alert(1)//
level 1: 通过添加反斜线使用来转义的反斜线变为字符,\");alert(1)//
level 2: 双引号,反斜杠都被转义了……没想到办法,就搜了搜,原来可以直接不管双引号而闭合<script>
标签,可能优先级不同吧,</script><script>alert(1)//
level 3: JSON.stringify() 方法可以将任意的 JavaScript 值序列化成 JSON 字符串。,<a>
标签的href属性可执行js代码,尝试补全双引号,插入自己的js代码,直接插入会被转义,使用URLencode可绕过,%22),alert(1)(%22
level 4: 这个题需要仔细地观察正则式,注意到 "
仅仅替换了一次,<a>
标签中不能有空白符比较难用,而 <img>
标签中的第二个匹配文本允许除换行符以外的任意字符,这个就比较好用了,注意闭合引号就好了,[[1|2"" onload=alert(1) "]]
level 5: 这是第4题的升级版,"
全部被替换了,因此第4题的方法行不通了,对"
进行编码也行不通,百思不得其解啊,无奈看了看评论,得到解答 [[1|http://onload=‘alert(1)‘]]
,原来是同时利用 <img>
标签跟 <a>
标签啊!看看输出的源码就会发现,成功绕过了 "
!
level 6: 以 #
作为分隔符输入两个参数,如果 #
前面是 Element
结果就是创建一个新的节点,具体什么节点由 #
后面指定,而如果 #
前面是 Comment
,那么 #
后面就变成注释内容,闭合注释符号然后写入自己的代码即可, Comment#><script>alert(1)</script><!
level 7: 仍然是以 #
作为分隔符输入两个参数,对第一个参数做正则匹配,注意匹配的字符中包括单引号 ‘
,这是本题的关键,使用单引号和注释符号来隔离 json 字符串中碍事的字符,就可以构造出来了,‘#‘;alert(1)//
level 8: 使用 Data URI,插入一个 html 文档,</script><script src=data:text/html,%61%6c%65%72%74(1)>
目前只做到 level 8,未完待续
标签:
原文地址:http://www.cnblogs.com/renzongxian/p/5197173.html