常见xss绕过——xss game练习

0X00

网安菜鸡为了学习xss漏洞攻击,选择了xss game来进行一些xss攻击绕过的学习。

0X01 level 1

首先进来后观察到这样的页面:
常见xss绕过——xss game练习
注意到url中的参数name,值为test,页面中出现了test,尝试修改name的值发现页面中内容改变,于是找到了输入输出的地方。
首先将url栏处修改为?name=<script>alert('1')</script>,成功过关。
常见xss绕过——xss game练习

0X02 level 2

常见xss绕过——xss game练习
进来后发现有个输入框,尝试输入<script>alert('1')</script>,失败了。查看页面源代码,发现<>两个符号被过滤替换了:
常见xss绕过——xss game练习
查看文件源代码发现是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函数进行了替换
常见xss绕过——xss game练习
于是这里我们可以使用html的onchange事件来进行绕过。输入' onchange=alert('1') //,成功过关。

onchange事件可以在元素的值改变时触发,就可以在提交时触发我们的恶意脚本。

0X04 level 4

第四关的话和第三关差不多,查看页面源码的时候发现value值得闭合符号由单引号变成了双引号,只要将第三关的payload稍微改一下即可过关。
" onchange=alert('1') //
常见xss绕过——xss game练习

0X05 level 5

第五关先输入<script>alert('1')</script>查看页面源码,发现<script>被替换了,输入" onchange=alert('1') //发现onchange也被替换了,尝试大小写混合也还是被过滤掉:常见xss绕过——xss game练习常见xss绕过——xss game练习
于是我们尝试a标签,输入"><a href=javascript:alert('1')>,将input标签闭合,提交,下方payload变蓝,点击触发JavaScript事件,成功过关。
常见xss绕过——xss game练习

0X06

今天就先这样吧,下次继续。加油!