跨站脚本
WAF 关键字过滤
大多数规则匹配的是固定字符串,换一种等价写法往往就能通过。
- 大小写混写:<sVg OnLoAd=...>
- 使用不常见事件:onpointerenter、onanimationstart
- 用 HTML 实体编码属性值
防护措施失效的常见方式。每一条都在公开报告中反复出现过。
跨站脚本
大多数规则匹配的是固定字符串,换一种等价写法往往就能通过。
跨站脚本
如果 script-src 包含托管任意 JS 的 CDN 或带 JSONP 端点的域名,CSP 就形同虚设。
服务端请求伪造
黑名单通常只检查字面量,换一种 IP 表示方式或借助 DNS 重绑定即可绕过。
开放重定向
使用 startsWith / contains 检查域名的实现几乎总能被绕过。
路径遍历
只替换一次 ../ 或者在解码之前校验,都会留下缺口。
业务逻辑
限流往往按 IP 或某个请求头计数,而这些都可以被客户端控制。
身份认证
第二因素校验经常只在前端完成,或者某些备用登录路径根本没有检查。
访问控制
网关与应用对 URL 的规范化方式不同,造成授权规则匹配不到真正的处理器。
SQL 注入
过滤空格和关键字并不能阻止注入,SQL 语法提供了大量等价写法。
代码执行
只校验扩展名或 Content-Type 时,可以借助解析差异让文件以可执行形式落地。