xss基本类型:<script>alert(‘xss’)</script>
level1
查看源码,看到URL中的name=test插入到了<h2>
</h2>
标签之间
这种属于反射性xss
尝试最简单的弹窗js代码
<script>alert('xss')</script>
可以看到js弹窗被执行
说明没有任何过滤
查看源码
可以看到服务器是将我们的恶意代码原封不动的返回了,浏览器才能成功弹窗
level2
照常输入基本类型的xss语句
没有反应,查看源码
可以看到<和>在h2标签中被编码了
但在value标签中的js代码没被编码
所以可以将value标签中的引号和标签注释掉就可以了
"><script>alert('xss')</script>//
前面的“闭合了前面的引号,后面的//闭合了后面的引号
level3
输入上一关卡的js代码
发现这次服务端连value标签都将<和>都用htmlspecialchars()函数编码了
既然<>都不能用,可以用onclick事件进行触发
' onclick='alert(1)
前面的单引号屏蔽前面的引号,等号后的单引号与后面的引号进行闭合
输入后需要点击触发事件才能通关
level4
查看源码
与上一关很相似,只不过是用双引号闭合
将上一关的单引号换成双引号就可以了
" onclick="alert(1)
level5
继续输入基本型xss查看源码
可以看到服务端对script标签进行了阻断
可以用js的另一种标签进行尝试
"><a href="javascript:alert(1)
需要将搜索的URL删除
输入后需要点击图片触发事件
level6
输入上一个关卡的代码尝试
不行,查看源码
发现href标签也被_阻断了
猜测服务端没有对该标签进行小写转换
尝试大小写绕过,成功
"><a hRef="javascript:alert(1)
"><Script>alert('xss')</sCript>
level7
照常输入上一关的代码
查看源码,发现href和script都被删除了
尝试大小写也不行
既然大小写绕过不行,那就双写绕过吧
"><scrscriptipt>alert('xss')</scrscriptipt>
level8
这次尝试用前面的大小写、双写绕过都不行
都把script、href标签禁了
则只能对代码进行编码
javascript:alert(1) (ascii) javascript:alert(1) (hex)
level9
这一关不管输入什么都提示链接不合法。
那就加上http://baidu.com,发现合法, 测试发现,payload中必须带有http://
第一次尝试javascript:alert(1)#http:// 使用前端的注释失败; 第二次:使用php的注释,//对单行注释
javascript:alert(1)//http://
level10
这题没找到输入点
查看检查下代码元素
发现有隐藏的表单
改成可触发事件onclick