第一关 反射型xss(get):
尝试直接插入xss代码,发现有长度限制,我认为有两种方法可以越过
方法一:在网址框直接输入,网址框没有长度限制
方法二:直接查看前端代码,发现限制长度的代码,直接修改长度
现在就可以正常输入了
插入成功
第二关:反射型xss(post)
看一眼提示,先登录账号
得到一个提交页面,感觉和上一关差不多
输入获取cookie的payload:<script>alert(document.cookie)</script>
第三关:储存型xss
可以看到一个留言框
在留言框中尝试输入xss代码<script>alert(1)</script>
插入后每次打开此网页就会执行一次xss代码
第四关:dom型xss
尝试插入xss代码,发现回显了一个链接“what do you see?” 打开网站源代码查看一下
只用在输入的位置闭合掉js语句就可以完成注入
payload:#' οnclick="alert('1')">
第五关:dom型xss-x
尝试插入xss代码,弹出两个文字链接
接下来右键查看一下页面源代码,分析代码看出和第四关没太大区别,直接插入payload让代码闭合即可' οnclick="alert('xss')">
第六关:xss之盲打
进入关卡发行两个留言框,尝试插入xss代码没有回显,提示谢谢参与
右键打开页面源代码,发现代码以post形式提交,但是看不出来提交到哪里去了,看一眼提示他说需要登陆
直接就弹出漏洞了,进入后发现内容都记录在后台了,只要登陆后台机会运行xss代码。
第七关:xss之过滤
还是先简单的做下测试 ,回显了一句话,而且网址栏发现xss代码,说明为反射型xss,只不过存在过滤,右键查看一下页面源码,但是看不出什么,只能发现是get提交方式,尝试输入特殊字符都没有被过滤,但是只要一输入<script>就会被过滤的只剩>,那就要使用别的payload尝试
尝试一下<a herf="#" οnclick="alert(document.cookie)">,获取一下cookie,没有被过滤
第八关:xss之htmlspecialchars
先输入xss语句看看,不出所料没有反应,下面弹出一个链接
右键查看页面源代码,可以看到<>被编译了,变成了这个样子
<a href='<script>alert(1)</script>'>可以尝试一下利用<a>标签, 输入Payload:#' οnclick='alert(1)' 成功了,此时打开页面源代码发现语句被闭合了。
第九关:xss之href输出
先输入个<script>alert(1)</script>
试试,应该是不会有弹框
看一下页面的源代码,可以发现<>被编译了
尝试闭合发现单引号也被编译了,
href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段。如果用户选择了<a>
标签中的内容,那么浏览器会尝试检索并显示 href 属性指定的 URL 所表示的文档,或者执行 JavaScript 表达式、方法和函数的列表。
利用JavaScript协议,输入payload:javascript:alert(666)
成功了
第十关:xss之js输出
还是输入xss代码尝试,发现没有任何反应,
发现并没有屏蔽xss代码,只是出现在了<script>
标签内,那么可以试试直接利用这个<script>直接插入一';alert(1);//闭合前面的注释掉后面的
成功