目录
文章所用的xss-labs靶场的项目地址:GitHub - do0dl3/xss-labs: xss 跨站漏洞平台
文章内容仅供参考
Level 1
第一关相对简单,进入页面,一眼望去,它是向服务器提交了一个name参数,值为“test”,因此可以通过name这个参数进行测试。
<script>alert(1);</script>
这里可以看到,用于js弹窗的代码顺利执行了。
考察内容:JS弹窗函数alert()
Level 2
第二题看起来和第一题还是比较相似的, 还是先通过测试语句尝试一下。(<script>alert(1);</script>)
这里发现, 事情并没有这么简单,先看下网页的代码
可以看到 其中<和>都被编码成了html字符实体。但是第二个没有。尝试一下闭合思路。
"><script>alert(1);</script><
浏览器成功出现弹窗,下一关。
Level 3
进入页面,一如既往的进行普通测试,感觉和第二题相似。查看页面代码。
果然,服务器端用对参数的值进行了处理。先看看源码。
从源码中发现参数会放到input参数进行提交,因此可以考虑到用事件型触发弹窗,如onfocus、onclick等,因此本题尝试用onfocus事件在元素获得焦点时触发。
onfocus=javascript:alert()
还需要闭合一下
' onfocus=javascript:alert() '
,在点击一下搜索框。注入成功。
Level 4
进行简单的尝试,发现这题和上一题也有点相似。
因此本题尝试用事件型触发并闭合。
" onfocus=javascript:alert() "
Level 5
进行简单的尝试,查看网页源代码。
这里可以看到,他对script这个关键词进行了处理。查看源码。
可以看到,这题针对on、script进行了替换。因此可以考虑用a href标签法,添加一个标签得闭合前面的标签,构建payload。
"> <a href=javascript:alert()>xxx</a> <"
点击链接即可。