搭建xss-labs靶场,这里我直接使用phpstudy来快速搭建。
level1
第一关,看到传参值是test然后有输出test的地方,所以猜测点这里,直接弹框跳转到第二关。
level2
果断过了第一关来到了第二关,根据第一关经验,可以看到输入点和输出点,继续尝试在url里输入弹框语句。
语句没有执行,那么我们f12审查一下元素。
发现两个输出点,一个被实体化了,而另外一个可以闭合绕过来执行语句,构造语句:"><script>alert(1)</script>
level3
第三关和1、2关有点不一样了,突破点应该就是这个搜索框了。
输入弹框语句,f12审查元素发现过滤了<>
那么我们可以使用oninput事件
构造语句:'' oninput=alert(1) //
level4
跳转到第四关,我们可以看到<>被删除了,和第三关的方式一样我们
构造语句:"> oninput=alert(1) //
直接通过。
level5
第五关发现会被替换成这样,但是它没有过滤,那么我们可以这样构造语句:"><a href=javascript:alert(1)>11</a>
level6
和第五关一样,也会把语句进行替换,但是对于大小写没有区分,直接通过大小写绕过。
level7
尝试发现它会删除script那么我们可以双写构造语句:"><scripscriptt>alert(1)</scripscriptt>
直接跳到第八关
level8
尝试了好多都不行,百度一下发现大佬是编码绕过的,只能高呼666了。
构造语句:javascript:alert(1)
level9
和第八关一样,但是这里好像加了个判断,所以构造语句:
javascript:alert(1)//http://www.baidu.com
level10
type="hidden"是隐藏属性,将输入框隐藏掉了,覆盖type值,三个值中只有t_sort会改变那么构造语句:1&t_sort=" onclick="alert(1)" type="display"
level11
如图所见值为referer的数据所以抓包修改referer的值,构造语句" type="text" onclick="alert(1)
level12
和11一样不过是修改User-Agent
level13
和11、12一样,构造语句:Cookie: user=call+me+maybe%3F" type="text" onclick="alert(1);
level14和15
14、15关崩了,可以看一下这位表哥的文https://blog.csdn.net/qq_32393893/article/details/104814749
level16
过滤了script和空格并且把/替换成了 ;但是没有过滤<>所以我们构造语句:<img%0asrc='x'%0aonerror=alert(1)>
小知识:%0a是换行
level17和18
onmouseover事件:当鼠标指针移动到图像上时执行一段 JavaScript然后我们构造语句:http://127.0.0.1/xss_c/level17.php?arg01=a&arg02=%20onmouseover=alert(1)
level19和20
看不懂
参考:
https://www.jianshu.com/p/4e3a517bc4ea
https://www.jianshu.com/p/7b8fe7f01d62
https://www.cnblogs.com/wangyuyang1016/p/13532898.html#_caption_7
总结:玩完发现自己学到了好多,希望以后可以学到更多知识,加油!