「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》
XSS Stroed
- 一、Low级别
- 二、Medium级别
- 三、Hign级别
这关是一个论坛功能,把用户提交的内容插入到页面进行展示。
一、Low级别
低级别中Message字段没有过滤,直接提交代码即可,payload:
<script>alert('就TM你叫韩毅啊')</script>
复制到Message的输入框中,点击 Sign Guestbook
弹窗就代表通过
二、Medium级别
先清除历史记录,防止之前提交的内容影响接下来的关卡。
由源码可知,Message字段被 htmlspecialchars() 转移成纯字符,无法XSS
而Name字段只过滤了一遍小写的<script,可以考虑双写绕过、大小写绕过
前端限制了Name输入框的长度,右键-检查-修改name输入框的maxlength值,回车生效
提示:这样临时修改的前端代码,刷新或提交就失效,然后就需要再次修改。
使用大小写绕过,payload:
<Script>alert(1)</Script>
在Name输入框,输入payload,点 Sign Guestbook
提示:如果长度被限制,就重新右键修改 maxlength
双写绕过也可以,payload:
<scr<script>ipt>alert('就TM你叫韩毅啊')</Script>
三、Hign级别
记得先 clear Guestbook 清除历史记录
高级别在中级的基础上,又利用正则表达式,对Name字段增加了大小写和双写的过滤
只过滤了<script,使用替代标签绕过即可,payload:
<svg onload=alert('就TM你叫韩毅啊')>
<img src=1 onerror=alert('就TM你叫韩毅啊')>
<body onload=alert('就TM你叫韩毅啊')>