目录
漏洞原理
跨站脚本攻击—XSS(Cross Site Script),是指攻击者通过在Web页面中写入恶意脚本,造成用户在浏览页面时,控制用户浏览器进行操作的攻击方式。
反射型 XSS,也是非持久型,常见的就是在URL中构造,将恶意链接发送给目标用户。当用户访问该链接时候,会向服务器发起一个GET请求来提交带有恶意代码的链接。造成反弹型XSS 主要是GET类型。
Low
渗透思路
无防护直接上 payload
<script>alert(1)</script>
Medium
渗透思路
大小写绕过
<Script>alert(1)</Script>
源码对比
Low & Medium 源码
对比小结
Medium 只是对 script 标签字符串做了简单替换,不能有效地防止其它形式的 XSS payload
High
渗透思路
img 标签绕过
<img src=1 onerror=alert(1)>
源码对比
Medium & High 源码
对比小结
与 Medium 相比,High 对 script 标签字符串进行匹配且不区分大小写
Impossible
源码对比
High & Impossible 源码
对比小结
Impossible 对所有用户输入做了如下措施:
- 校验 CSRF token
- html 编码,所有特殊符号都会被转义,也就无法被有效解析
绕过
- 大小写绕过
- 关键字双写绕过
- 利用eval拼接关键字绕过
- 利用注释、标签的优先级
- 编码绕过
防御
- 过滤敏感字符或进行编码转义
- 针对特定类型数据进行格式检查
- 针对输入点的检查最好放在服务器端实现
- WAF