5月27日 21:37
常见 XSS Payload 有哪些?
常见 XSS Payload 有哪些?
XSS Payload 是注入页面后可在浏览器执行的恶意代码片段,面试常考按攻击目的分类和绕过手法。
答案
Cookie/会话窃取——document.cookie 读取会话信息外发。防护:Cookie 设 HttpOnly。
页面篡改与钓鱼——修改 DOM 或注入伪造登录框。防护:输入做 HTML 实体编码后再渲染。
键盘记录——监听 keydown 回传按键。防护:CSP 的 connect-src 限制外发目标。
CSRF 辅助——JS 能读 CSRF Token 构造合法请求,XSS 场景下 CSRF Token 无效。
绕过手法
- 大小写混写:
<ScRiPt>绕过小写匹配 - 编码变形:HTML 实体、URL 编码、JS Unicode 让关键字变形
- 事件处理器:
<img onerror>、<svg onload>在<script>被过滤后仍可触发 - 符号替换:
/替代空格,反引号替代引号
防护优先级
- 输出编码——渲染前 HTML 转义
- CSP——
script-src 'nonce-xxx',nonce 优于 unsafe-inline - HttpOnly Cookie——防 JS 读取
- 白名单校验——拒绝危险字符而非过滤
追问
unsafe-eval和unsafe-inline风险?——分别允许 eval 和内联脚本,削弱 CSP- DOM 型与反射型 XSS 区别?——前者纯客户端 DOM 操作,后者服务端回显输入
- 富文本如何防 XSS?——用 DOMPurify 白名单,而非黑名单过滤