0X00
网安菜鸡为了学习xss漏洞攻击,选择了xss game来进行一些xss攻击绕过的学习。
0X01 level 1
首先进来后观察到这样的页面:
注意到url中的参数name,值为test,页面中出现了test,尝试修改name的值发现页面中内容改变,于是找到了输入输出的地方。
首先将url栏处修改为?name=<script>alert('1')</script>
,成功过关。
0X02 level 2
进来后发现有个输入框,尝试输入<script>alert('1')</script>
,失败了。查看页面源代码,发现<>两个符号被过滤替换了:
查看文件源代码发现是htmlspecialchars
函数(可参考https://baijiahao.baidu.com/s?id=1621553793329253809&wfr=spider&for=pc)将input的value值进行了替换然后输出到页面上,于是我们尝试将input标签进行闭合,输入"><script>alert('1')</script>
成功过关。
0X03 level 3
第三关尝试输入"><script>alert('1')</script>
无果,查看页面源码发现这次input的value值处也被htmlspecialchars
函数进行了替换
于是这里我们可以使用html的onchange事件来进行绕过。输入' onchange=alert('1') //
,成功过关。
onchange事件可以在元素的值改变时触发,就可以在提交时触发我们的恶意脚本。
0X04 level 4
第四关的话和第三关差不多,查看页面源码的时候发现value值得闭合符号由单引号变成了双引号,只要将第三关的payload稍微改一下即可过关。
" onchange=alert('1') //
0X05 level 5
第五关先输入<script>alert('1')</script>
查看页面源码,发现<script>被替换了,输入" onchange=alert('1') //
发现onchange也被替换了,尝试大小写混合也还是被过滤掉:
于是我们尝试a标签,输入"><a href=javascript:alert('1')>
,将input标签闭合,提交,下方payload变蓝,点击触发JavaScript事件,成功过关。
0X06
今天就先这样吧,下次继续。加油!