目录
level1
首先看到用红框标记的部分,猜测有反射型xss漏洞,将test修改为payload:
<script>alert('xss')</script>
很轻松成功!
level2
与第一关xss漏洞类型相同,尝试输入一句话代码。
发现失败,应该是进行了过滤。查看网页源码
发现其中大于小于号都被编码成了html字符实体。
应该是使用了这个函数。
接下来的方法是将属性的引号和标签先闭合,这里打开源码确认一下
输入 payload:"><script>alert('xss')</script>//
level3
直接上源码,发现在这两处都做了转义。
尝试使用payload:'οnfοcus=javascript:alert('xss') > // 输入之后再点击一次输入框就成功了。
level4
发现其将输入的字符串中的“<” “>” 转换为空字符,但打印没有变化,可以使用上一关的payload。
注意一下闭合即可。
level5
发现其对<script> 以及 <onclick> 进行了过滤
使用payload:"> <a href=javascript:alert('xss') > xss</a> //
level6
发现其设置了黑名单,对很多都进行了过滤。
因为HTML对于大小写不敏感,这里尝试切换大小写,成功。
level7
无法使用大小写关键字绕过
尝试双写关键字绕过,成功!
level8
发现对关键字做了小写处理,过滤关键字,对闭合引号做了转义。
这里尝试对输入语句进行url编码
level9
相较于上一关,多出一个判断,如果没有‘http://’ 则连接不合法。
使用上一关的payload并在后面加上‘http://’,发现没有弹窗也没有报错。
最后发现原因是http
与JavaScript:alert()
在一起有干扰,注释掉即可
level10
这里看到keyword没有输入,这里有三个隐藏的输入标签,所以尝试对t_sort进行突破
level11
查看代码,发现有两个入手点:
1.与上一关相同,尝试在t_sort进行突破,发现对于引号进行了转义。
2.对HTTP_REFERER进行突破,通过抓包进行尝试。
在包中添加:referer:"type="text" οnclick="alert('xss')再放包就可以成功了。
level12
与上一关类型,修改use_agent就能成功。
level13
同样的修改cookie